使用iOS SDK将文件上载到AWS S3时为空自定义元数据
我正在使用使用iOS SDK将文件上载到AWS S3时为空自定义元数据,ios,amazon-web-services,amazon-s3,metadata,aws-sdk,Ios,Amazon Web Services,Amazon S3,Metadata,Aws Sdk,我正在使用AWSS3TransferUtility将一个文件从iOS上传到S3,并尝试在该文件上设置自定义元数据。我正在使用元数据键X-Amz-Meta-uploadParameters和值“Test”测试它 它正确显示在请求标题中: ... &X-Amz-Expires=2999&X-Amz-Meta-uploadParameters=Test&X-Amz-Security-Token= ... 显然发生了一些事情,因为在上传之后,键uploadparameters确
AWSS3TransferUtility
将一个文件从iOS上传到S3,并尝试在该文件上设置自定义元数据。我正在使用元数据键X-Amz-Meta-uploadParameters
和值“Test”测试它
它正确显示在请求标题中:
... &X-Amz-Expires=2999&X-Amz-Meta-uploadParameters=Test&X-Amz-Security-Token= ...
显然发生了一些事情,因为在上传之后,键uploadparameters
确实出现在S3控制台中的对象属性中,但值为空。为了再次检查,我使用了CLI中的s3api--head object
,下面是返回的内容:
{
"AcceptRanges": "bytes",
"LastModified": "Thu, 16 Mar 2017 08:04:41 GMT",
"ContentLength": 1331730,
"ETag": "\"[hex data here]\"",
"ContentType": "image/jpeg",
"Metadata": {
"uploadparameters": ""
}
}
下面是我如何设置AWSS3TransferuilityUploadExpression
的值:
let params = [
"X-Amz-Meta-uploadParameters": "Test"
]
//Copy the custom Meta information into the expression
for (key, value) in params {
expression.setValue(value, forRequestParameter: key)
}
在使用了各种变体之后,我仍然无法设置实际的元数据。我在这里遗漏了什么?已修复。在发布了这个问题后,我沮丧地继续调整事情,无意中找到了答案
改变所有小写字母的键是一个神奇的转折点,即
x-amz-meta-uploadparameters
而不是x-amz-meta-uploadparameters
。顺便说一句,它也会因X-Amz-Meta-uploadparameters
而失败 这闻起来很像一只虫子。这是有记录的。它必须是小写的