Amazon S3 boto-как создать папку?
Как я могу создать папку под ведром с помощью boto
библиотека для Amazon s3?
я следовал руководству и создал ключи с разрешением, метаданными и т. д., но не там, где в документации boto описывается, как создавать папки под ведром или создавать папку под папками в ведре.
9 ответов:
в S3 нет понятия папок или каталогов. Вы можете создавать имена файлов, такие как
"abc/xys/uvw/123.jpg"
, который многие инструменты доступа S3, какS3Fox
показать как структуру каталогов, но на самом деле это просто один файл, в ведерке.
Предположим, вы хотите создать папку abc/ 123 / в вашем ведре, это кусок пирога с Boto
k = bucket.new_key('abc/123/') k.set_contents_from_string('')
или использовать консоль
С AWS SDK .Net работает отлично, просто добавьте " / " в конце строки имени папки:
var folderKey = folderName + "/"; //end the folder name with "/" AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(AWSAccessKey, AWSSecretKey); var request = new PutObjectRequest(); request.WithBucketName(AWSBucket); request.WithKey(folderKey); request.WithContentBody(string.Empty); S3Response response = client.PutObject(request);
затем обновите консоль AWS, и вы увидите папку
добавьте "_$folder$ " к имени папки и вызовите put.
String extension = "_$folder$"; s3.putObject("MyBucket", "MyFolder"+ extension, new ByteArrayInputStream(new byte[0]), null);
S3 не имеет структуры папок, но есть что-то, называемое ключами.
мы можем создать
/2013/11/xyz.xls
и будет отображаться как папка в консоли. Но часть хранения S3 будет принимать это как имя файла.даже при извлечении мы видим, что мы можем видеть файлы в определенной папке (или ключи) с помощью
ListObjects
метод и с помощью
это очень легко создавать папки. На самом деле это просто создание ключей.
вы можете увидеть мой код ниже, я создавал папку с utc_time как имя.
помните, заканчивается ключ с '/', как показано ниже, это означает, это ключ:
Key= 'folder1/' + utc_time + '/'
client = boto3.client('s3') utc_timestamp = time.time() def lambda_handler(event, context): UTC_FORMAT = '%Y%m%d' utc_time = datetime.datetime.utcfromtimestamp(utc_timestamp) utc_time = utc_time.strftime(UTC_FORMAT) print 'start to create folder for => ' + utc_time putResponse = client.put_object(Bucket='mybucketName', Key='folder1/' + utc_time + '/') print putResponse
хотя вы можете создать папку, добавив " / " к имени вашей папки. Под капотом S3 поддерживает плоскую структуру в отличие от вашего обычного NFS.
var params = { Bucket : bucketName, Key : folderName + "/" }; s3.putObject(params, function (err, data) {});