![](/img/trans.png)
[英]How do you configure the endpoint for Amazon S3 by using the AWS SDK V2?
[英]How to update metdata of object on amazon s3 using aws sdk?
我正在研究與 amazon s3 服務相關的 java 項目,其中我使用 jets3 庫進行 s3 操作,例如創建存儲桶等,現在我正在用 aws-sdk-java-v2 替換 jets3 但問題即在 jets3 中有以下方法更新上傳對象的元數據是:-
s3ervice.updateObjectMetadata(sBucket, sObject);
但是在新的 aws-sdk 中我沒有找到任何方法。 我正在使用以下代碼塊來更新元數據,但每次替換內容時,我只想更新元數據而不替換內容,所以請提出建議。
代碼 :-
public static boolean updateObjectMetadataByCopyObject(S3Client s3Client,
String bucketName,
String objectKey
) {
Map ds = new HashMap<>();
ds.put("ds", "dsa");
String encodedUrl = null;
try {
encodedUrl = URLEncoder.encode(bucketName + "/" + objectKey, StandardCharsets.UTF_8.toString());
} catch (UnsupportedEncodingException e) {
System.out.println("URL could not be encoded: " + e.getMessage());
}
CopyObjectRequest copyReq = CopyObjectRequest.builder()
.destinationBucket(bucketName).copySource(encodedUrl)
.destinationKey(objectKey).metadata(ds).storageClass(StorageClass.REDUCED_REDUNDANCY)
.build();
try {
CopyObjectResponse copyRes = s3Client.copyObject(copyReq);
copyRes.copyObjectResult().toString();
return true;
} catch (S3Exception e) {
throw e;
}
}## Heading ##
請建議如何使用 aws-sdk-v2 更新上傳對象的元數據。
不幸的是,如果不執行復制對象,則無法更新元數據。 這是亞馬遜的摘錄
上傳對象后,您將無法修改對象元數據。 修改對象元數據的唯一方法是制作對象的副本並設置元數據。 修改對象元數據的唯一方法是制作對象的副本並設置元數據。
此外,即使是通過管理控制台公開的用於更改元數據的功能也會復制對象。
此操作使用更新的設置和上次修改日期創建對象的副本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.