Использование Amazon S3 SDK для резервного копирования и восстановления данных iPhone - PullRequest
2 голосов
/ 29 мая 2011

У меня есть учетная запись Amazon S3 и я скачал пакет AWSiOSSDK framework / SDK.Пример работает отлично.Я могу «Просмотреть списки» и загрузить образцы данных.

Я хочу использовать S3 для резервного копирования пользовательских данных, а затем предоставить возможность загрузить ту же резервную копию для восстановления данных, как и при необходимости.

Я думал, что было бы легко определить методы / классы, чтобы сделать это, но я изо всех сил.Я просмотрел документацию, но она ошеломляющая (для такого «простого» требования).Я также не могу найти никаких онлайн-учебников.Я попытался удалить соответствующий код и фреймворки из примера Amazon, но остановился после нескольких часов попыток заставить что-либо работать.

Кто-нибудь указывает мне на учебник (или предоставляет пример кода), показывающий, как использовать AmazonSDK в XCode?Это первый раз, когда я пробовал онлайн-резервное копирование на iPhone, поэтому извините, если это кажется упрощенным.

Благодарим вас за помощь.

Ответы [ 2 ]

5 голосов
/ 29 мая 2011

Для скачивания:

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];
0 голосов
/ 29 мая 2011

Спасибо, Дэвид.Очень ценитсяПара вопросов, хотя.Я скопировал в 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;


 @end

основной

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?");
...