Быстрый способ перечислить все файлы в корзине Amazon S3? - PullRequest
125 голосов
/ 26 июля 2010

У меня есть амазонка s3, в которой хранятся десятки тысяч имен файлов. Какой самый простой способ получить текстовый файл, в котором перечислены все имена файлов в корзине?

Ответы [ 25 ]

0 голосов
/ 27 января 2012
public static Dictionary<string, DateTime> ListBucketsByCreationDate(string AccessKey, string SecretKey)  
{  

    return AWSClientFactory.CreateAmazonS3Client(AccessKey,
        SecretKey).ListBuckets().Buckets.ToDictionary(s3Bucket => s3Bucket.BucketName,
        s3Bucket => DateTime.Parse(s3Bucket.CreationDate));

}
0 голосов
/ 06 марта 2018

Самый простой способ получить очень удобный текстовый файл - это загрузить S3 Browser http://s3browser.com/ и использовать Генератор веб-URL для получения списка полных путей ссылки. Это очень удобно и занимает около 3 кликов.

-Browse to Folder
-Select All
-Generate Urls

Удачи вам.

0 голосов
/ 04 декабря 2017
# find like file listing for s3 files
aws s3api --profile <<profile-name>> \
--endpoint-url=<<end-point-url>> list-objects \
--bucket <<bucket-name>> --query 'Contents[].{Key: Key}'
0 голосов
/ 24 октября 2017

Упрощенная и обновленная версия ответа Scala от Паоло:

import scala.collection.JavaConversions.{collectionAsScalaIterable => asScala}
import com.amazonaws.services.s3.AmazonS3
import com.amazonaws.services.s3.model.{ListObjectsRequest, ObjectListing, S3ObjectSummary}

def buildListing(s3: AmazonS3, request: ListObjectsRequest): List[S3ObjectSummary] = {
  def buildList(listIn: List[S3ObjectSummary], bucketList:ObjectListing): List[S3ObjectSummary] = {
    val latestList: List[S3ObjectSummary] = bucketList.getObjectSummaries.toList

    if (!bucketList.isTruncated) listIn ::: latestList
    else buildList(listIn ::: latestList, s3.listNextBatchOfObjects(bucketList))
  }

  buildList(List(), s3.listObjects(request))
}

Удаление обобщенных элементов и использование ListObjectRequest, созданного сборщиками SDK.

0 голосов
/ 23 апреля 2015

В PHP вы можете получить полный список объектов AWS-S3 внутри определенного сегмента, используя следующий вызов

$S3 = \Aws\S3\S3Client::factory(array('region' => $region,));
$iterator = $S3->getIterator('ListObjects', array('Bucket' => $bucket));
foreach ($iterator as $obj) {
    echo $obj['Key'];
}

Вы можете перенаправить вывод вышеуказанного кода в файл, чтобы получить список ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...