将6秒的视频上传到我的S3存储桶时,我收到以下错误消息:
“操作无法完成。(com.amazonaws.AWSS3TransferUtilityErrorDomain错误2。)
这种情况发生在上传到AWS的栏达到100%之后
我尝试过的事情:
1)确保将iphone设置为正确的时区(并自动将其设置为“
2)我打开存储桶的权限比以往任何时候都宽,以确保其权限没有问题,所有内容都是公共读写。
3)将用户放入对S3存储桶具有完全权限的组中
4)尝试获取更详细的错误日志记录,我似乎无法捕获所需的内容(我的代码返回userInfo不正确)
let errorInfo = err.userInfo["Error"] as? [String: Any]
if errorInfo != nil {
print("Found error in response. Details are:")
for element in errorInfo! {
print(">> \(element.key): \(element.value)")
}
}
5)我只有一个可供选择的区域,如下所示(有人建议该区域可能导致问题):
let credentialsProvider = AWSStaticCredentialsProvider(accessKey: accessKey, secretKey: secretKey)
let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1, credentialsProvider: credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
我不知道这是否有任何价值,但这是我的任务响应的结果:
task response <NSHTTPURLResponse: 0x281ac0d40> { URL: ..urlstuff } { Status Code: 404, Headers {
Connection = (
close
);
"Content-Type" = (
"application/xml"
);
Date = (
"Tue, 02 Jul 2019 06:28:13 GMT"
);
Server = (
AmazonS3
);
"Transfer-Encoding" = (
Identity
);
"x-amz-id-2" = (
"stuff"
);
"x-amz-request-id" = (
stuff
);
} }
Task request urlstuff
我看到的一件事是,我使用的对象不同于大多数对象,这将密钥秘诀化了:AWSStaticCredentialsProvider我见过的大多数教程都建议使用:AWSCognitoCredentialsProvider