java - ListObjectsV2 访问被拒绝 Java SDK
问题描述
我试图在java中使用以下代码在前缀下列出存储桶中的所有对象:
ListObjectsV2Request request =
new ListObjectsV2Request()
.withBucketName(bucketName)
.withDelimiter("/")
.withPrefix(prefix)
.withMaxKeys(2);
ListObjectsV2Result result;
do {
result = s3Client.listObjectsV2(req);
log.info("Results size is : " + result.getObjectSummaries().size());
s3client 设置正确,因为我可以上传、删除等。我只是在列出对象时遇到问题。如果我不提供前缀,我会收到拒绝访问,但如果我提供前缀,我会收到一个空响应。我测试aws s3 ls
了我是否有权限,并且能够以这种方式打印整个存储桶。对接下来的调试步骤有什么想法吗?
解决方案
通过 ssh 进入实例并比较 aws s3 ls 和 s3api 的输出来解决。忘记了强制前缀和分隔符。
推荐阅读
- mediapipe - 如何获取 Mediapipe 地标索引?
- c - 尝试 malloc 结构数组,但堆缓冲区溢出
- java - C# 的 Java 代码的 SecretKeySpec AES 等效性
- node.js - 在 webpack 中使用 gzip 时出现 tapPromise 错误
- bash - bash 中有没有办法将“双分叉”脚本的标准输出连续记录到文件中?
- ghostscript - 是否可以在网络上共享 Ghostscript?
- c++ - 为什么我在使用 MinGW 和 Cmake 时收到此错误?
- bash - bash 选项卡自动完成速度太慢,但不是 teraterm 或 putty
- html - 容器重叠标题图像
- java - 使用 Alpakka 库从 s3 下载文件中的问题在 play java 项目中