使用iOS SDK将文件上载到AWS S3时的空白自定义元数据

时间:2017-03-16 09:13:58

标签: ios amazon-web-services amazon-s3 metadata aws-sdk

我正在使用AWSS3TransferUtility从iOS上传文件到S3,并尝试在文件上设置自定义元数据。我正在使用元数据键X-Amz-Meta-uploadParameters和值“测试”进行测试。

它在请求标题中正确显示:

... &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": ""
    }
}

以下是我为AWSS3TransferUtilityUploadExpression设置值的方法:

        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)
        }

玩过各种各样的变化后,我仍然没有接近设置实际的元数据。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

固定。在发布这个问题后,我继续沮丧地调整事情,偶然发现答案。

将键改为所有小写是神奇的扭曲,即x-amz-meta-uploadparameters而不是X-Amz-Meta-uploadParameters。顺便提一下,X-Amz-Meta-uploadparameters也失败了。