【发布时间】:2021-09-28 04:08:40
【问题描述】:
使用 AWS SDK for C++ ListObjectsRequest,有没有办法让 SDK 根据 Set Marker 的值返回存储桶中的最新对象?在下面的代码中,问题在于 object_list 向量中的对象从最新到最旧。因此,将“last_key”设置为“back()”元素的键会导致下一次循环中的结果为 0(因为没有什么比“last_key”更早。)
如果我将“last_key”设置为“front()”的键值,您最终会再次循环遍历相同的存储桶对象。
有没有办法使用“last_key”告诉 SDK 获取比“last_key”更新的对象?
Aws::String last_marker;
while(true) {
Aws::S3::Model::ListObjectsRequest objects_request;
objects_request.WithBucket(bucket);
if (last_key.length() > 0) {
objects_request.SetMarker(last_key);
}
Aws::S3::Model::ListObjectsOutcome outcome;
outcome = s_client.ListObjects(objects_request);
Aws::Vector<Aws::S3::Model::Object> object_list =
outcome.GetResult().GetContents();
//loop through object vector.
last_marker.assign(object_list.back().GetKey());
}
【问题讨论】:
标签: c++ amazon-web-services aws-sdk aws-sdk-cpp