我有一个亚马逊S3帐户,并且已经下载了AWSiOSSDK框架/SDK包。该示例运行良好。我可以“列出存储桶”并上传样本数据。
我想使用S3备份用户数据,然后提供下载相同备份的机会,以便在需要时恢复数据。
我认为识别方法/类来做这件事会很容易,但我正在努力。我已经浏览了文档,但它是压倒性的(对于这样一个“直截了当”的要求)。我也找不到任何在线教程。我试着从Amazon的例子中剥离出相关的代码和框架,但在尝试了几个小时后就停止了。
有没有人给我介绍一下如何在XCode中使用Amazon SDK的教程(或提供示例代码)?这是我第一次在iPhone上尝试在线备份,所以如果这看起来太简单了,请原谅。
感谢你的帮助。
发布于 2011-05-29 10:25:05
下载:
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。
s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY];
S3PutObjectRequest *request = [[S3PutObjectRequest alloc] initWithKey:@"YOURKEY" withBucket:@"YOURBUCKET"];
request.data = ...
S3PutObjectResponse *response = [s3Client putObject:request];发布于 2011-05-29 19:02:23
谢谢大卫。真的很感激。不过,还是有几个问题。我复制了AWSiOSSDK.framework,但我想我必须将它导入到标题中?当我添加#import AWSiOSSDK/S3/AmazonS3Client.h时,它似乎阻止了任何NSLog消息。非常奇怪。不用说,我的上传不工作,但我似乎不能调试。代码如下:
标题
#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;
@endmain
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?");https://stackoverflow.com/questions/6165255
复制相似问题