Ответ 1
Как уже говорилось, Amazon S3 действительно требует Листинговые ключи с использованием AWS SDK для .NET:
Поскольку ведра могут содержать практически неограниченное количество ключей, полные результаты запроса списка могут быть чрезвычайно большими. Справляться большие результирующие наборы, Amazon S3 использует разбиение на страницы, чтобы разбить их на множественные ответы. Каждый ответ ключей списка возвращает страницу до 1000 ключей с индикатором, указывающим, если ответ усечен. Вы отправляете серию запросов ключей списка, пока не получили все ключи.
Указанный индикатор - это свойство NextMarker из класса ObjectsResponse - его использование проиллюстрировано в полном примере Листинговые ключи с использованием AWS SDK для .NET с соответствующим фрагментом:
static AmazonS3 client;
client = Amazon.AWSClientFactory.CreateAmazonS3Client(
accessKeyID, secretAccessKeyID);
ListObjectsRequest request = new ListObjectsRequest();
request.BucketName = bucketName;
do
{
ListObjectsResponse response = client.ListObjects(request);
// Process response.
// ...
// If response is truncated, set the marker to get the next
// set of keys.
if (response.IsTruncated)
{
request.Marker = response.NextMarker;
}
else
{
request = null;
}
} while (request != null);