gpt4 book ai didi

php - 如何获取 Amazon S3 中列表对象的上一页

转载 作者:行者123 更新时间:2023-12-03 01:50:44 24 4
gpt4 key购买 nike

我已成功创建用于列出 Amazon S3 存储桶中的对象的下一个按钮。每次用户单击“下一步”按钮时,只会返回两个 key 。代码如下

    $response = $s3->list_objects('bucket_name', array(
'prefix' => 'small/',
'max-keys' => 2,
'marker' => 'small/blah.jpg'
));

上面的代码将在标记后返回 2 个键。但我无法创建上一个按钮。有什么可以返回标记之前的前 2 个键吗?或者您能提出更好的解决方案吗?我正在使用 PHP SDK。谢谢

最佳答案

AWS S3 API 没有任何指定返回标记之前的项目的参数。在最新版本的 API 中,marker 已重命名为 start-after 参数,强调您只能获取参数值旁边的项目。

要实现上一个按钮,您应该在数据库或缓存中存储特定请求的连续标记列表。例如,可能有 3 列:

request_hash | marker_key | previous_marker_key

处理当前请求,您可以将行添加到表中并获取行。下面是一些伪代码:

$requestHash = sha1(serialize([$bucketName, $prefix, $delimiter]));
$markerForPreviousPage = $dbProvider
->fetchPreviousMarker($requestHash, $_GET['current_marker']);
$markerForNextPage = $keysFromS3[count($keysFromS3) - 1];
// here you will add values respectively to the columns request_hash, marker_key, previous_marker_key
$dbProvider
->addNewMarker($requestHash, $markerForNextPage, $_GET['current_marker']);

关于php - 如何获取 Amazon S3 中列表对象的上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269337/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com