Статья Beginning with Amazon S3 является хорошей отправной точкой для вас. Кодовые биты, ссылающиеся на метод listObject, составляют 99% от того, что вы хотите (получение всех файлов с определенным префиксом). Вам просто нужно добавить биты, чтобы допросить размер каждого из них и добавить их.
Если вы можете получить ведро, то у вас уже есть все провода вверх, что нужно для этого фрагмента кода для работы:
using (s3Client)
{
long totalFileSize = 0;
try
{
ListObjectsRequest Lor = new ListObjectsRequest()
{
BucketName = "<Your Bucket Name>",
Prefix = "<Your Folder Path>",
///assuming your delimiter is a/
Delimiter = "/"
};
ListObjectsResponse response1 = s3Client.ListObjects(Lor);
foreach (S3Object s3Object in response1.S3Objects)
{
totalFileSize += s3Object.Size();
}
}
catch (AmazonS3Exception ex)
{
///do some error handling....
}
}
S3 плоский - нет папок, просто файлов с очень длинными именами и разделителями, которые заставляют его иметь папки. Вы хотите узнать размер всех объектов, хранящихся вместе с общим префиксом? например/ram/files/*? – Mike
ok Я не очень хорошо знаком с амазонок S3, и это так, тогда это поможет мне в этой проблеме. как будто Ram - это имя ведра, и файлы находятся внутри него, возможно ли это получить и ограничить максимальный размер файлов ... –