2017-06-19 66 views
0

我嘗試下面的選項,但他們沒有將工作如何在java中上傳時在aws s3對象中設置緩存控制?

  • metadata.setCacheControl(「最大年齡= 604800,必重新驗證」);
  • 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」);

請幫我解決這個...

+0

你確定這不是第一個嗎?這似乎是正確的。 –

+0

是的,邁克爾,第一個是正確的。我的錯誤是我在PutObjectRequest中傳遞元數據,而不是transferManager.upload()。現在它工作正常。謝謝 ... –

回答

0

第一個是正確的做法,我做錯了什麼就是通過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); 

現在,它的工作的罰款。

相關問題