使用适用于iOS的Amazon S3 Transfer Utility设置元数据

时间:2016-01-14 11:38:12

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

我找不到使用此库设置元数据的方法:Amazon S3 Transfer Utility for iOS

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

您可以使用Navigator.SceneConfigs.PushFromRight上的- setValue:forRequestParameter:添加元数据。

注意Amazon S3以小写形式存储用户定义的元数据。每个名称,值对都必须符合US-ASCII。

答案 1 :(得分:1)

  

您可以将用户定义的元数据分配给对象。用户定义的元数据必须以前缀“ x-amz-meta-”开头,否则,Amazon S3将不会在您定义键值对时对其进行设置。您可以通过在x-amz-meta-key中添加您选择的名称来定义自定义元数据。这将创建一个自定义密钥。例如,如果添加自定义名称alt-name,则元数据键将为x-amz-meta-alt-name。

您可以参考以下链接:https://docs.aws.amazon.com/AmazonS3/latest/user-guide/add-object-metadata.html#add-object-metadata-user-defined

  var uploadCompletion: AWSS3TransferUtilityUploadCompletionHandlerBlock?
    uploadCompletion = { (uploadTask, error) in
        if error == nil {
            completion(nil)
        } else {
            completion(error)
        }
    }

    let expression = AWSS3TransferUtilityUploadExpression()
//YOUR METADATA HERE
    expression.setValue("value", forRequestParameter: "x-amz-meta-yourkeyhere")

    let transferUtility = AWSS3TransferUtility.default()
    transferUtility.uploadData(data,
                               bucket: s3BucketName,
                               key: key,
                               contentType: "image/png",
                               expression: expression,
                               completionHandler: uploadCompletion)