0

使用英文关键字从 S3 搜索和获取图像列表的最佳和简单方法是什么。还是我必须使用 Rekognition 将所有图像元数据存储到数据库中?

我的开发是使用 PHP。

4

2 回答 2

1
<?php

require 'vendor/autoload.php';

use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

$bucket = '*** Your Bucket Name ***';

// Instantiate the client.
$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'us-east-1'
]);

// Use the high-level iterators (returns ALL of your objects).
try {
    $objects = $s3->getPaginator('ListObjects', [
        'Bucket' => $bucket
    ]);

    echo "Keys retrieved!" . PHP_EOL;
    foreach ($objects as $object) {
        echo $object['Key'] . PHP_EOL;
    }
} catch (S3Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

// Use the plain API (returns ONLY up to 1000 of your objects).
try {
    $result = $s3->listObjects([
        'Bucket' => $bucket
    ]);

    echo "Keys retrieved!" . PHP_EOL;
    foreach ($result['Contents'] as $object) {
        echo $object['Key'] . PHP_EOL;
    }
} catch (S3Exception $e) {
    echo $e->getMessage() . PHP_EOL;
}

因此此代码将返回您存储桶中的所有对象,您可以添加仅当密钥包含扩展名“jpg”、“jpeg”和“png”的逻辑,然后只需打印对象的密钥/名称

于 2018-05-26T12:06:35.697 回答
0

您可以列出所有对象并找到您正在寻找的对象

在伪代码中

connect to S3

list thru all buckets ( or specify a bucket )

for object in bucket.objects.all
    if object.key = your search criteria
        do something

我有一个代码在 python 中为我执行此操作,如果您喜欢我发布它,请告诉我,因为您使用的是 php,我在上面的伪代码中为您提供了逻辑

于 2018-05-25T21:31:38.643 回答