Como posso criar uma pasta em um balde usando boto
biblioteca do Amazon s3?
Segui o manual e criei as chaves com permissão, metadados, etc., mas em nenhum lugar da documentação do boto ele descreve como criar pastas em um bucket ou criar uma pasta em pastas no bucket.
Respostas:
Não há conceito de pastas ou diretórios no S3. Você pode criar nomes de arquivo como
"abc/xys/uvw/123.jpg"
, que muitas ferramentas de acesso ao S3S3Fox
mostram como uma estrutura de diretório, mas na verdade é apenas um único arquivo em um bucket.fonte
Suponha que você queira criar a pasta abc / 123 / no seu balde, é um pedaço de bolo com o Boto
Ou use o console
fonte
new_key()
é tudo o que você precisa. A sequência enviada para a função pode serabc/123/
ouabc/123/newfile.txt
. O que você preferir. Eu gosto de colocar isso em uma declaração if depois de tentar obter o que espero que exista assim:key = bucket.get_key(upgrade_path) if key is None: key = bucket.new_key(upgrade_path)
Essencialmente, se não estiver lá, crie-o!mp = self._bucket.initiate_multipart_upload(bucket_key)
Com o AWS SDK .Net funciona perfeitamente, basta adicionar "/" no final da string do nome da pasta:
Atualize seu console da AWS e você verá a pasta
fonte
Usa isto:
fonte
Anexe "_ $ folder $" ao nome da pasta e chame put.
consulte: http://www.snowgiraffe.com/tech/147/creating-folders-programmatically-with-amazon-s3s-api-putting-babies-in-buckets/
fonte
É realmente fácil criar pastas. Na verdade, é apenas a criação de chaves.
Você pode ver meu código abaixo: eu estava criando uma pasta com utc_time como nome.
Lembre-se de terminar a chave com '/' como abaixo, isso indica que é uma chave:
Chave = 'pasta1 /' + utc_time + '/'
fonte
Atualização para 2019, se você deseja criar uma pasta com o caminho bucket_name / folder1 / folder2, você pode usar este código:
fonte
Embora você possa criar uma pasta anexando "/" ao nome da sua pasta. Sob o capô, o S3 mantém a estrutura plana, diferentemente do NFS comum.
fonte
Tentei muitos métodos acima e adicionar barra
/
ao final do nome da chave, para criar o diretório, não funcionou para mim:Você precisa fornecer o
Body
parâmetro para criar o diretório:Fonte: ryantuck na edição boto3
fonte
O S3 não possui uma estrutura de pastas, mas existe algo chamado como chaves.
Nós podemos criar
/2013/11/xyz.xls
e ser mostrados como pastas no console. Mas a parte de armazenamento do S3 tomará isso como o nome do arquivo.Mesmo ao recuperar, observamos que podemos ver arquivos em determinada pasta (ou chaves) usando o
ListObjects
método e usando oPrefix
parâmetrofonte
Aparentemente, agora você pode criar pastas no S3. Não tenho certeza desde quando, mas tenho um bucket na zona "Padrão" e posso escolher Criar pasta na lista suspensa Ação.
fonte