2

PHP サーバーから Amazon S3 バケット内にあるすべてのファイル名のリストを取得したいと考えています。それは Amazon PHP SDK で可能ですか? そうでない場合、別の方法はありますか?ありがとう!

4

2 に答える 2

4

公式の AWS SDK for PHP v2 を使用すると、次のようなことができます。

<?php

require 'vendor/autoload.php';

use Aws\Common\Aws;

// Instantiate an S3 client
$s3 = Aws::factory('/path/to/config.php')->get('s3');

$objects = $s3->getIterator('ListObjects', array(
    'Bucket' => $bucket
));

foreach ($objects as $object) {
    echo $bucket['Name'] . '/' . $object['Key'] . PHP_EOL;
}
于 2013-02-03T16:47:00.787 に答える
1
  1. MaxKeysそれが無視されたことを除いて、私にとってはうまくいきました。
  2. 上記の方法と以下の方法の使用に違いはありますか。内の配列要素に到達できませんでしたが、$result.

    use Aws\Common\Aws;
    use Aws\S3\S3Client;
    
    // Prepare S3 Client to speak with AWS
    $s3client;
    $s3client = S3Client::factory(array(
        'key' => '',
        'secret' => '',
        'region' => Region::US_EAST_1
    ));
    
    // List objects from a bucket
    $result = $s3client->listObjects(array(
        'Bucket' => $aws_bucket,
        'MaxKeys' => 25,
        'Marker' => 'docs/'
    ));
    
    $objects = $result->getIterator();
    
    foreach ($objects as $wo)
    {
        // Prints junk
        echo $wo['Key'] . ' - ' . $wo['Size'] . PHP_EOL;
    }
    
于 2013-04-17T11:31:34.787 に答える