AWS S3 CopyObject保持缓存控制?

时间:2018-07-06 07:59:51

标签: amazon-s3 aws-sdk

我正在使用.NET SDK在两个S3存储桶之间复制对象,如下所示:

var request = new CopyObjectRequest
{
    SourceBucket = _sourceBucket,
    SourceKey = objectKey,
    DestinationBucket = _destinationBucket,
    DestinationKey = destinationKey
};

我注意到 new 图片上出现了Cache-Control标头。

我完全不需要这些图像上的任何缓存(例如Cache-Control: private)。

问题:

  1. Cache-Control如何到达那里? S3存储桶设置还是复制的默认行为? (对我更好奇)
  2. 如何确保不缓存目标图像? (我看不到如何在副本上设置Cache-Control

谢谢!

1 个答案:

答案 0 :(得分:0)

找到了我的答案。

1)“ 复制对象时,您可以保留所有元数据(默认)或指定新的元数据。”因此,这是“默认”行为。 ref

2) 您可以在构造对象之后设置标头 。注意:因为您在meta data指令中选择REPLACE,所以需要设置 all 标头。

var request = new CopyObjectRequest
{
   MetadataDirective = S3MetadataDirective.REPLACE
};

request.Headers.CacheControl = "private";
request.Headers.ContentType = "image/jpeg";