java - 我们可以在 Amazon S3 中的单个 Java SDK 调用中执行、创建存储桶、阻止公共访问和存储桶版本控制功能吗?
问题描述
我正在尝试创建一个具有“阻止公共访问”设置的附加功能和通过 JAVA SDK 启用/禁用存储桶版本控制的存储桶。但是我面临的问题是所有功能都在不同的JAVA类中给出,这是有问题的,因为如果一个请求被执行而另一个没有被执行,那么它将导致操作执行一半或执行. 所以我的问题是,我们可以在单个 JAVA SDK 调用中执行所有上述功能吗?
为了在 Amazon S3 上创建存储桶,我使用以下代码 -
CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucket);
s3Object.createBucket(createBucketRequest.withObjectLockEnabledForBucket(Boolean.parseBoolean(objectLock)));
请注意,调用中提供了对象锁定功能。
提前致谢。
解决方案
不,你不能那样做。底层S3 CreateBucket API(每个 SDK 都使用)根本不提供该功能。
您可能希望将存储桶创建“外包”到一个可以重试的专用 lambda,并以这样的方式编写您的代码,如果它已经存在,它可以跳过存储桶创建,然后尝试设置版本控制等。
推荐阅读
- web-scraping - 无法使用 scrapy-splash 抓取动态加载网页
- javascript - 使用 Material UI 中的 theme.breakpoints.down('') 时出错
- javascript - 如何使用 Angular 8 以编程方式选中或取消选中我的复选框?
- javascript - 如何在 JavaScript 中像时钟一样增加 8 位值的数组?
- python - 如何在 Pybullet 中加载 urdf.xacro?
- html - 为 2 个不同的对象生成相同的 2 种随机颜色
- java - Eclipse 未使用指定的 JDK
- javascript - 使用 svg 可调整大小的带有粗糙边缘的框
- r - 如何在R(gam)中生成带有阴影的情节?
- flutter - Flutter中如何根据GridView的宽度适配crossAxisCount?