【问题标题】:How to set cache control in aws s3 object while uploading in java?java - 在java中上传时如何在aws s3对象中设置缓存控制?
【发布时间】:2017-06-19 07:57:40
【问题描述】:

我尝试了以下选项,但它们都不起作用

  • metadata.setCacheControl("max-age=604800, must-revalidate");
  • metadata.addUserMetadata("x-amz-meta-Cache-Control", "max-age=31536000, must-revalidate");

  • metadata.setHeader("x-amz-meta-Cache-Control", "max-age=31536000, must-revalidate");

  • metadata.addUserMetadata("Cache-Control", "max-age=31536000, must-revalidate");

请帮我解决这个问题...

【问题讨论】:

  • 你确定不是第一个?这似乎是正确的。
  • 是的,迈克尔,第一个是正确的。我的错误是我在 PutObjectRequest 而不是 transferManager.upload() 中传递了元数据。现在它工作正常。谢谢...

标签: java amazon-web-services image-uploading


【解决方案1】:

第一个是正确的方法,我做错的是,通过 PutObjectRequest 而不是 TransferManager 上传方法传递元数据。需要在 TransferManager 上传方法中传递元数据。

metadata.setCacheControl("max-age=604800, must-revalidate");

不正确:

ObjectMetadata metadata = new ObjectMetadata();
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, PREFIX + folderName + DELIMITER, null, metadata);

正确:

ObjectMetadata metadata = new ObjectMetadata();
metadata.setCacheControl("max-age=31536000, must-revalidate");
Upload upload = transferManager.upload(bucketName, PREFIX + folderName + DELIMITER + fileName, fileStream, metadata);

现在它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2013-10-25
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多