首页 > 解决方案 > 我们可以在 Amazon S3 中的单个 Java SDK 调用中执行、创建存储桶、阻止公共访问和存储桶版本控制功能吗?

问题描述

我正在尝试创建一个具有“阻止公共访问”设置的附加功能和通过 JAVA SDK 启用/禁用存储桶版本控制的存储桶。但是我面临的问题是所有功能都在不同的JAVA类中给出,这是有问题的,因为如果一个请求被执行而另一个没有被执行,那么它将导致操作执行一半或执行. 所以我的问题是,我们可以在单个 JAVA SDK 调用中执行所有上述功能吗?

为了在 Amazon S3 上创建存储桶,我使用以下代码 -

CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket);
s3Object.createBucket(createBucketRequest.withObjectLockEnabledForBucket(Boolean.parseBoolean(objectLock)));

请注意,调用中提供了对象锁定功能。

提前致谢。

标签: javaamazon-web-servicesamazon-s3sdk

解决方案


不,你不能那样做。底层S3 CreateBucket API(每个 SDK 都使用)根本不提供该功能。

您可能希望将存储桶创建“外包”到一个可以重试的专用 lambda,并以这样的方式编写您的代码,如果它已经存在,它可以跳过存储桶创建,然后尝试设置版本控制等。


推荐阅读