首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用亚马逊S3软件开发工具包备份和恢复iPhone数据

使用亚马逊S3软件开发工具包备份和恢复iPhone数据
EN

Stack Overflow用户
提问于 2011-05-29 08:42:06
回答 2查看 2.4K关注 0票数 2

我有一个亚马逊S3帐户,并且已经下载了AWSiOSSDK框架/SDK包。该示例运行良好。我可以“列出存储桶”并上传样本数据。

我想使用S3备份用户数据,然后提供下载相同备份的机会,以便在需要时恢复数据。

我认为识别方法/类来做这件事会很容易,但我正在努力。我已经浏览了文档,但它是压倒性的(对于这样一个“直截了当”的要求)。我也找不到任何在线教程。我试着从Amazon的例子中剥离出相关的代码和框架,但在尝试了几个小时后就停止了。

有没有人给我介绍一下如何在XCode中使用Amazon SDK的教程(或提供示例代码)?这是我第一次在iPhone上尝试在线备份,所以如果这看起来太简单了,请原谅。

感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-29 10:25:05

下载:

代码语言:javascript
复制
s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY];              
S3GetObjectRequest *request = [[S3GetObjectRequest alloc] initWithKey:@"YOURKEY" withBucket:@"YOURBUCKET"];
S3GetObjectResponse *response = [s3Client getObject:request];

response.body是一个包含下载的NSData

上传时,S3PutObjectRequest的工作方式与此大致相同。您可以指定文件名或NSData。

代码语言:javascript
复制
s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY];              
S3PutObjectRequest *request = [[S3PutObjectRequest alloc] initWithKey:@"YOURKEY" withBucket:@"YOURBUCKET"];
request.data = ...
S3PutObjectResponse *response = [s3Client putObject:request];
票数 5
EN

Stack Overflow用户

发布于 2011-05-29 19:02:23

谢谢大卫。真的很感激。不过,还是有几个问题。我复制了AWSiOSSDK.framework,但我想我必须将它导入到标题中?当我添加#import AWSiOSSDK/S3/AmazonS3Client.h时,它似乎阻止了任何NSLog消息。非常奇怪。不用说,我的上传不工作,但我似乎不能调试。代码如下:

标题

代码语言:javascript
复制
#import UIKit/UIKit.h
#import AWSiOSSDK/S3/AmazonS3Client.h

#define ACCESS_KEY                   @""
#define SECRET_KEY                   @""

@interface S3_Try2ViewController : UIViewController {

AmazonS3Client *s3Client;

S3PutObjectRequest *putObjectRequest;
S3PutObjectResponse *putObjectResponse;

S3GetObjectRequest *getObjectRequest;
S3GetObjectResponse *getObjectResponse;

}

-(IBAction) S3Upload;
-(IBAction) S3Download;


 @end

main

代码语言:javascript
复制
NSLog(@"Start upload");

NSString *bucketName = @"bucketName";
NSString *keyName    = @"asyncTestFile";
NSString *filename   = [[NSBundle mainBundle] pathForResource:@"temp" ofType:@"txt"];

NSLog(@"filename %@",filename);

s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY];
putObjectRequest = [[S3PutObjectRequest alloc] initWithKey:keyName inBucket:bucketName];

NSLog(@"alloc finished");

putObjectRequest.filename = filename;

NSLog(@"Uploading");

putObjectResponse = [s3Client putObject:putObjectRequest];

NSLog(@"Finished?");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6165255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档