php - S3 listObjectsV2 - StartAfter 未显示预期结果
问题描述
我正在尝试获取某个标识符之后的存储桶中的所有文件。
这是我的代码,省略了不相关的部分。
require_once LIB . DS . 'Aws/vendor/autoload.php';
use Aws\S3\S3Client as S3Client;
use Aws\Credentials as Credentials;
$s3 = new S3Client([
'region' => $region,
'version' => 'latest',
'key' => AWS_KEY,
'secret' => AWS_SECRET,
'credentials' => $credentials
]
);
$data = $s3->listObjectsV2(
[
'Bucket' => <MY BUCKET>,
// the response content should be after this record
'StartAfter' => '302760677',
'MaxKeys' => 2
]);
print_r($data);
我得到的结果如下:
Aws\Result Object
(
[data:Aws\Result:private] => Array
(
[IsTruncated] => 1
[Contents] => Array
(
[0] => Array
(
[Key] => json/300705/300705046/status.json
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2018-06-20 11:45:06.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "2777f5fabc31969108b16cd8459d3b5d"
[Size] => 945
[StorageClass] => STANDARD
)
[1] => Array
(
[Key] => json/300705/300705046/address.json
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2018-06-20 11:45:06.000000
[timezone_type] => 2
[timezone] => Z
)
[ETag] => "3fd8ef54a83e93d470f5438079f51345"
[Size] => 477
[StorageClass] => STANDARD
)
)
)
)
在这里,返回的响应内容显示键的数据 - 300705046,它小于我在请求的“StartAfter”节点中指定的数据。
谁能帮我理解我可能做错了什么。
谢谢
解决方案
StartAfter ( docs ) 与完整密钥匹配。
例如,您可以尝试通过以下方式请求:
'StartAfter' => 'json/302760/302760677/address.json',
推荐阅读
- java - AnyChart 折线图缩放
- java - 调试时,对象实例表示“result = {SomeClass@816}”是什么意思?
- visual-studio - f# 交互式窗口中的输出似乎没有意义,并且与教程视频不匹配
- datatable - 在 Shiny 中更改 DT 表上单元格的颜色
- amazon-web-services - aws cli 命令 - `致命错误:未定义名称'ssl'`
- c# - C# 异步任务在完成之前完成
- properties - sd_bus_get_property_string 等效于 gdbus?
- c++ - 为什么 vector::iterator 和 set::iterator 的工作方式不同?
- javascript - javascript中传播运算符的问题
- python - PyQt5 Linux Mint Cinnamon 原生“删除”、“应用”按钮