有人可以帮忙吗?
我尝试使用AWSS3ReplicateObjectRequest设置bucket,key和replicateSource属性来指向相同的现有S3文件,将metadataDirective设置为AWSS3MetadataDirectiveReplace并分配新的用户定义元数据。在那种情况下,我有错误:
Error Domain=com.amazonaws.AWSGeneralErrorDomain Code=3 "The operation
couldn’t be completed. (com.amazonaws.AWSGeneralErrorDomain error 3.)"
UserInfo=0x7ae60ef0 {Message=The request signature we calculated does not
match the signature you provided. Check your key and signing method. ...
我错过了什么吗? (AWS iOS SDK v2.2.4)
更新
AWSS3 *s3 = [AWSS3 S3ForKey:s3Key];
AWSS3ReplicateObjectRequest *request = [[AWSS3ReplicateObjectRequest alloc] init];
request.bucket = MYAmazonS3BucketName;
request.key = self.s3ObjectKey;
request.replicateSource = [NSString stringWithFormat:@"%@/%@",
MYAmazonS3BucketName,
self.s3ObjectKey];
request.contentType = @"application/octet-stream";
NSDictionary *metadata = @{@"type" : @"my_type",
@"note" : @"the_note"};
request.metadata = metadata;
request.metadataDirective = AWSS3MetadataDirectiveReplace;
[[s3 replicateObject:request] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
}
else {
NSLog(@"Result: %@", task.result);
}
return nil;
}];
使用Cognito执行身份验证。我可以上传/下载/删除对象,可以单独获取元数据。