Amazon s3 にファイルをアップロードできるようにする必要がある iOS アプリに取り組んでいますが、いくつか問題があります。この関数は、s3 バケット内に正しいキーまたはパスを作成しますが、ファイル自体はアップロードしません。以下は、私が試したオプションの1つのコードです
if (self.s3 == nil) {
self.s3 = [[AmazonS3Client alloc] initWithAccessKey:[Config getS3Key] withSecretKey:[Config getS3Secret]] ;
}
[self performSelectorInBackground:@selector(processBackgroundThreadUploadInBackground:)
withObject:params];
}
- (void)processBackgroundThreadUploadInBackground:(NSMutableDictionary *)params
{
S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:@"staging/videos/" inBucket:@"aaa.aaaaa.com"];
por.contentType = @"video/mp4";
por.data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[params valueForKey:@"takeurl"]]];
// por.contentType = @"image/png";
// por.data = [params valueForKey:@"takeimage"];
S3PutObjectResponse *putObjectResponse = [self.s3 putObject:por];
[self performSelectorOnMainThread:@selector(showCheckErrorMessage:)
withObject:putObjectResponse.error
waitUntilDone:NO];
}
これにより、s3 のバケット内にキー パス staging/videos/ が作成されますが、ファイルは存在しません。画像ファイルでもこれを試しました。プッシュしようとしているデータがゼロでないことを確認しました。サーバーから取得したxml応答は、コンテンツの長さが0であることを示しています。s3 SDK からのマルチパート アプローチも試しましたが、同じ結果が得られました。誰かが私が間違っていることを見ることができますか?