java - 我想设置 s3 对象特定保留

标签 java amazon-web-services amazon-s3 aws-java-sdk

我想设置特定于对象的保留,但使用下面的 java 代码没有成功:

所以我尝试锁定对象,但出现以下错误: 存储桶缺少 ObjectLockConfiguration

注意:已向用户提供完整的 s3 访问权限

    ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentLength(bytes.length);
    metadata.setContentType(contentType);
    metadata.setExpirationTime(DateTime.now().toDate());
    metadata.setHeader("x-amz-bucket-object-lock-enabled", true);
    //metadata.setHeader("expires", expirationTime);
    //metadata.setHttpExpiresDate(expirationTime);
    ObjectLockConfiguration oc = new ObjectLockConfiguration();

    PutObjectRequest putRequest = new PutObjectRequest(targetBucketName, objectName, baInputStream, metadata);

    putRequest.setObjectLockRetainUntilDate(DateTime.now().plusDays(2).toDate());
    s3client.putObject(putRequest);

最佳答案

    ObjectMetadata metadata = new ObjectMetadata();
    System.out.println("size:"+bytes.length);
    metadata.setContentLength(bytes.length);
    metadata.setContentType(contentType);
    Date expirationTime = new Date(2025,5,10);
    metadata.setExpirationTime(DateTime.now().toDate());
    metadata.setHeader("x-amz-object-lock-retain-until-date", closerDate+"T00:00:00.000Z");
    metadata.setHeader("x-amz-object-lock-mode","COMPLIANCE");
    byte[] md5 = Md5Utils.computeMD5Hash(baInputStream);
    String md5Base64 = BinaryUtils.toBase64(md5);
    metadata.setHeader("Content-MD5", md5Base64);
    baInputStream.reset();
    PutObjectRequest putRequest = new PutObjectRequest(targetBucketName, objectName, baInputStream, metadata);
    s3client.putObject(putRequest);

关于java - 我想设置 s3 对象特定保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61136347/

相关文章:

c# - C#-DateTime 的 java 等价物是什么?

mysql - 无法在 RDS 实例上启用加密

amazon-web-services - 我的 s3 存储桶是否设置到正确的区域?

caching - Amazon s3 404 页面缓存在 cloudflare cdn

amazon-web-services - ListObjectV2 在 AWS Lambda 中获取拒绝访问错误

email - 用于从 Amazon S3 存储桶读取电子邮件的 Web 客户端

java - 我使用 LIKE 语句并得到 java.sql.SQLException : After end of result set in mysql

java - 如何在 foursquare api 中获取 canonicalUrl?

Java 泛型 - 在我调用 instanceof 之后,有什么方法可以避免强制转换(和未经检查的警告)?

amazon-web-services - 将 s3 存储桶添加为 docker 卷