Amazon S3 (Simple Storage Service) – это популярная служба облачного хранения данных, предоставляемая Amazon Web Services (AWS). Он позволяет пользователям хранить и извлекать данные из любой точки Интернета. При работе с S3 иногда необходимо исключить рекурсивную загрузку определенных файлов. В этой статье мы рассмотрим различные методы решения этой задачи, а также приведем примеры кода.
Методы исключения рекурсивной загрузки файлов в Amazon S3:
-
Использование интерфейса командной строки AWS и параметра –exclude:
Интерфейс командной строки (CLI) AWS обеспечивает удобный способ управления сегментами S3. Вы можете использовать командуaws s3 syncс опцией--exclude, чтобы исключить определенные файлы или шаблоны из рекурсивных загрузок. Вот пример:aws s3 sync /path/to/local/folder s3://bucket-name --exclude "folder/subfolder/file.txt" -
Использование SDK AWS.
AWS предоставляет SDK (наборы разработки программного обеспечения) для различных языков программирования, включая Python, Java и JavaScript. Используя SDK, вы можете писать код для программного взаимодействия с S3 и исключать определенные файлы во время рекурсивной загрузки. Вот пример на Python с использованием Boto3 SDK:import boto3 import botocore s3 = boto3.client('s3') def upload_files(bucket, local_folder, exclude_files): for root, dirs, files in os.walk(local_folder): for file in files: if file not in exclude_files: local_path = os.path.join(root, file) s3_path = os.path.relpath(local_path, local_folder) s3.upload_file(local_path, bucket, s3_path) upload_files('bucket-name', '/path/to/local/folder', ['folder/subfolder/file.txt']) -
Использование класса AWS S3 TransferUtility.
Пакеты AWS SDK также предоставляют абстракцию более высокого уровня, называемую классом TransferUtility, которая упрощает передачу файлов S3. С помощью TransferUtility вы можете исключить определенные файлы во время рекурсивной загрузки. Вот пример на C# с использованием AWS SDK для.NET:using Amazon.S3; using Amazon.S3.Transfer; var s3Client = new AmazonS3Client(); var transferUtility = new TransferUtility(s3Client); var uploadRequest = new TransferUtilityUploadDirectoryRequest { BucketName = "bucket-name", Directory = "/path/to/local/folder", SearchOption = SearchOption.AllDirectories, SearchPattern = "*.*", ExclusionPatterns = new List<string> { "folder/subfolder/file.txt" } }; transferUtility.UploadDirectory(uploadRequest);
Исключение определенных файлов во время рекурсивной загрузки в Amazon S3 необходимо для эффективного управления данными. В этой статье мы рассмотрели три метода: использование интерфейса командной строки AWS с параметром –exclude, использование AWS SDK и использование класса TransferUtility. Применяя эти методы, вы можете настроить загрузку файлов, исключив нежелательные файлы и оптимизировав операции с хранилищем S3.