java - 如何更新现有 Amazon S3 文件的元数据?

标签 java grails amazon-web-services amazon-s3 jclouds

我需要更新所有 AmazonS3 云文件中的缓存控制 header 。但是,我不知道如何使用 jclouds API 来做到这一点。 我正在使用 apache jclouds 插件。我得到了两个相关的答案:

第一个答案是建议使用 SwiftKey Api 类,该类在 grails 的 jcloud 插件中不可用。第二个答案是使用 AWS java sdk,其中已经有一个 grails 包装插件 https://grails.org/plugin/aws-sdk但不支持元数据更新。

最佳答案

可以通过执行对象复制来更改元数据(请参阅 How to update metadata using Amazon S3 SDK ):

ObjectMetadata metadataCopy = new ObjectMetadata();
// copy previous metadata
metadataCopy.addUserMetadata("newmetadata", "newmetadatavalue");

CopyObjectRequest request = new CopyObjectRequest(bucketName, existingKey, bucketName, existingKey)
      .withNewObjectMetadata(metadataCopy);

amazonS3Client.copyObject(request);

这是否是哲学上的“更新”由您决定。

关于java - 如何更新现有 Amazon S3 文件的元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61521563/

相关文章:

Java - 基本多线程

tomcat - AWS - 显示 Tomcat 默认页面而不是 webapp 主页

amazon-web-services - 有没有一种方法可以使用类似于谷歌存储 Write() 方法的 aws-sdk-go 将数据流式传输到 amazon s3 文件?

java - 使用 java EWS API 从 Exchange 检索邮件配额?

java - Spring组件扫描

java - 我的 fragment 不会显示在我的 Activity 中

unit-testing - 在 grails 中使用 mockDomain 时如何覆盖方法的逻辑?

java - tomcat下的JSP/Grails应用中静态函数是否隔离?

amazon-web-services - 如何使用预签名 URL 限制上传到 AWS S3 服务的文件的大小

javascript - 浏览器错误中的 AWS S3 Javascript