Ziq*_*Liu 3 amazon-s3 amazon-web-services aws-sdk
我正在使用Aws::S3::Model::ListObjectsV2Request列出 AWS s3 中的对象。
(它是 c++ sdk,但我想实现与 Java 相同,所以如果您熟悉 Java AWS S3 sdk,请查看我的问题)
有超过 1000 个对象,因此根据 SDK 1000 条记录限制不能放在一页中。
我发现两个 API 似乎都可以合理地处理这个问题。1.
// pseudo code
list_req
all_res = []
while true {
res = list_req.request()
all_res.add(res.get_all_entries())
if (res.isTruncated()) {
list_req.set_continuation_token(res.get_continuation_token());
}
}
Run Code Online (Sandbox Code Playgroud)
2.
// pseudo code
list_req
all_res = []
while true {
res = list_req.request()
all_res.add(res.get_all_entries())
if (res.isTruncated()) {
list_req.set_start_after(res.get_last_entry());
}
}
Run Code Online (Sandbox Code Playgroud)
这两种方法有什么区别?(我的情况是第一种方法会出现异常The continuation token provided is incorrect with address : 52.218.217.49,所以我只能使用第二种方法。)
StartAfter (string) -- StartAfter 是您希望 Amazon S3 开始列出的位置。Amazon S3 在此指定键之后开始列出。StartAfter 可以是存储桶中的任何键。
ContinuationToken(字符串)——ContinuationToken 指示 Amazon S3 正在使用令牌在此存储桶上继续列表。ContinuationToken 被混淆并且不是真正的密钥。
因此,如果您想从以 开头的对象开始列出存储桶G,请使用StartAfter = 'G'。
在ContinuationToken当返回了超过1000个结果被使用。在这种情况下,响应提供ContinuationToken您必须传递到下一个调用的 。结果将从上次列表结束的地方继续。
如果要从特定名称开始并检索 1000 多个对象,您可以指定这两个参数。
| 归档时间: |
|
| 查看次数: |
2636 次 |
| 最近记录: |