在AWS SDK(golang)中设置内容处置和内容类型无效

时间:2018-03-19 22:56:50

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

标题大部分都是这样说的。 我有以下代码:

        copySource := bucket + "/" + sourcePath + "/" + filenameIn
        destPath := lambdaParams.DestinationPath + "/" + filenameIn
        copyObjectInput := s3.CopyObjectInput{
                CopySource: aws.String(copySource),
                Bucket:     aws.String(bucket),
                Key:        aws.String(destPath),
        }

            if filepath.Ext(filenameIn) == ".pdf" {
copyObjectInput.SetContentType("application/pdf").SetContentDisposition("inline; filename=\"" + filenameIn + "\"")
            }

            _, err := svc.CopyObject(&copyObjectInput)
            if err != nil {
                    logErrorAndInformGFS(err, "S3 copy error.", c, log, filenameIn)
                    return err
            }

我正在设置Content-TypeContent-Disposition,希望复制的对象具有来自Content-TypeContent-Disposition的新值。但是,我可以在AWS中看到复制的文件与原始文件具有相同的元数据。我要离开的是什么?

1 个答案:

答案 0 :(得分:0)

看起来问题是我需要告诉AWS我想要REPLACE元数据。添加以下行最后允许我更改元数据:

copyObjectInput.SetMetadataDirective("REPLACE")