gpt4 book ai didi

ios - 在 iOS 中的 amazon s3 上设置文件权限

转载 作者:行者123 更新时间:2023-12-01 15:36:00 25 4
gpt4 key购买 nike

我正在将文件上传到我的 S3 存储桶,并且我希望它具有公共(public)读取权限。看起来它应该很简单,但就像我生活中的许多事情一样,它不是。寻找答案,我发现最接近的提示是:

Add a header to your PUT request: x-amz-acl: public-read



这看起来很简单,但是我使用的是 AWSS3TransferUtitlity,而不是 PUT,并且尝试在 AWSS3TransferUtilityUploadExpression 上设置 requestHeader 失败 - setValue: forRequestHeader: 无法识别,因此我使用的是 requestParamaters,但这也不起作用。我已经搜索和阅读,直到我的眼睛昏昏欲睡。有人可以帮忙吗?

到目前为止我的代码:
    AWSS3TransferUtilityUploadExpression *expression = [AWSS3TransferUtilityUploadExpression new];
// expression.uploadProgress = self.uploadProgress;
[expression.requestParameters setValue:@"public-read" forKey:@"x-amz-acl"];
AWSTask *atask;
AWSS3TransferUtility *transferUtility = [AWSS3TransferUtility defaultS3TransferUtility];
NSLog(@"started file trans: %@", self.fileToSend.fileURL);
[atask = [transferUtility uploadFile:self.fileToSend.fileURL
bucket:S3BucketName
key:self.fileToSend.fileName
contentType:self.fileToSend.mimeType
expression:expression
completionHander:self.completionHandler]
continueWithBlock:^id(AWSTask *task) {

编辑:
一些进展。我发现我使用的是过时版本的 SDK 和最新版本的文档。又一个愚蠢的错误。无论如何,更新 SDK 并重新编译后,它运行,但创建和异常 'NSUnknownKeyException',原因: '[<__NSDictionary0 0x12ed0c280> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key x-amz-acl.'
编辑:
好的。固定的。结合提示,退后一步,我将请求标题行更改为:
[expression setValue:@"public-read" forRequestHeader:@"x-amz-acl"];

感谢响应者。

最佳答案

像这样快速使用,

let expression = AWSS3TransferUtilityUploadExpression()
expression.setValue("public-read", forRequestHeader:"x-amz-acl")

关于ios - 在 iOS 中的 amazon s3 上设置文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37740406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com