使用AWS SDK for PHP 3.x:按最后修改时间获取S3存储桶中最新的对象。
P粉262113569
2023-07-28 11:50:32
<p>我正在尝试使用AWS SDK for PHP 3.x按最后修改时间获取存储桶中最新的对象。</p>
<p>我已经看到了如何使用AWS CLI来实现此功能。在这里:</p>
<ul>
<li>按最后修改时间获取S3存储桶中最新的对象</li>
<li>使用AWS CLI从S3获取最后修改的对象</li>
</ul>
<p>但是我不知道如何使用PHP SDK来实现这个功能。</p>
<pre class="brush:php;toolbar:false;">$S3Client = new AwsS3S3Client([
'version' => 'latest',
'region' => 'eu-west-3',
'credentials' => [
'key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
]
]);
$startTime = strtotime('-5 minutes');
$res = $S3Client->ListObjectsV2([
'Bucket' => 'my-bucket',
'Prefix' => 'objects/',
'StartAfter' => $startTime
])
</pre>
<p>我正在使用推荐的ListObjectsV2方法。</p><p>我有三个问题。</p><p><br /></p>
<ol>
<li><p>我应该如何按LastModified对结果进行排序?(就像在CLI中可以做的那样)</p>
</li>
<li><p>我有一些生命周期策略,这会影响到我的搜索,因为我得到了一些移动到GLACIER存储的对象的结果,而我不想要这些结果。</p>
</li>
<li><p>我想要获取对象的标签和元数据。我应该如何获取它?是否使用x-amz-optional-object-attributes?如何使用?</p>
</li>
</ol>
<p>顺便说一下,使用StartAfter参数似乎没有改变任何东西。</p>