Rya*_*yan 2 php optimization amazon-s3 file-exists amazon-web-services
假设平板Amazon S3存储桶中有200,000个图像.
该桶看起来像这样:
000000-1.jpg
000000-2.jpg
000000-3.jpg
000000-4.jpg
000001-1.jpg
000001-2.jpg
000002-1.jpg
...
ZZZZZZ-9.jpg
ZZZZZZ-10.jpg
Run Code Online (Sandbox Code Playgroud)
(一个6位哈希后跟一个计数,然后是扩展名)
如果我需要匹配所有文件000001-*.jpg,那么最有效的方法是什么?
在PHP中我会rglob($path,'{000001-*.jpg}',GLOB_BRACE)用来获得一系列匹配,但我认为这不会起作用.
我可以获取存储桶中所有文件的列表,然后在数组中查找匹配项,但这似乎是一个昂贵的请求.
您有什么推荐的吗?
亚马逊提供了一种使用S3 api直接执行此操作的方法.
prefix调用列表S3对象时,可以使用该选项仅返回以前缀开头的对象.例如,使用AWS SDK for PHP:
// Instantiate the class
$s3 = new AmazonS3();
$response = $s3->list_objects('my-bucket', array(
'prefix' => '000001-'
));
// Success?
var_dump($response->isOK());
var_dump(count($response->body->Contents))
Run Code Online (Sandbox Code Playgroud)
您可能还会发现该delimiter选项很有用 - 您可以使用它来获取所有唯一的6位数哈希值的列表.
| 归档时间: |
|
| 查看次数: |
1882 次 |
| 最近记录: |