¿Cómo puedo crear una carpeta en un depósito usando la boto
biblioteca para Amazon s3?
Seguí el manual y creé las claves con permiso, metadatos, etc., pero en ninguna parte de la documentación del boto se describe cómo crear carpetas en un cubo o crear una carpeta en carpetas en un cubo.
Respuestas:
No existe el concepto de carpetas o directorios en S3. Puede crear nombres de archivo como
"abc/xys/uvw/123.jpg"
, que muchas herramientas de acceso de S3S3Fox
muestran como una estructura de directorio, pero en realidad es solo un archivo en un depósito.fuente
Suponga que quiere crear la carpeta abc / 123 / en su cubo, es muy fácil con Boto
O usa la consola
fuente
new_key()
es todo lo que necesitas. La cadena enviada a la función podría serabc/123/
oabc/123/newfile.txt
. Lo que sea que prefieras. Me gusta envolver esto en una declaración if después de intentar obtener lo que espero que sea así:key = bucket.get_key(upgrade_path) if key is None: key = bucket.new_key(upgrade_path)
Esencialmente, si no está allí, ¡créelo!mp = self._bucket.initiate_multipart_upload(bucket_key)
Con AWS SDK .Net funciona perfectamente, simplemente agregue "/" al final de la cadena del nombre de la carpeta:
Luego actualice su consola de AWS y verá la carpeta
fuente
Utilizar este:
fuente
Agregue "_ $ carpeta $" al nombre de su carpeta y llame a put.
ver: http://www.snowgiraffe.com/tech/147/creating-folders-programmatic-with-amazon-s3s-api-putting-babies-in-buckets/
fuente
Es muy fácil crear carpetas. En realidad, es solo crear claves.
Puede ver mi siguiente código que estaba creando una carpeta con utc_time como nombre.
Recuerde que termina la clave con '/' como a continuación, esto indica que es una clave:
Clave = 'carpeta1 /' + utc_time + '/'
fuente
Actualización para 2019, si desea crear una carpeta con la ruta nombre_de_cubo / carpeta1 / carpeta2, puede usar este código:
fuente
Aunque puede crear una carpeta agregando "/" a su nombre_de_carpeta. Debajo del capó, S3 mantiene una estructura plana a diferencia de su NFS normal.
fuente
Probé muchos de los métodos anteriores y agregué una barra diagonal
/
al final del nombre de la clave, para crear el directorio no funcionó para mí:Debe proporcionar el
Body
parámetro para crear el directorio:Fuente: ryantuck en el número boto3
fuente
S3 no tiene una estructura de carpetas, pero hay algo llamado claves.
Podemos crear
/2013/11/xyz.xls
y se mostrarán como carpetas en la consola. Pero la parte de almacenamiento de S3 lo tomará como nombre de archivo.Incluso al recuperar observamos que podemos ver archivos en una carpeta particular (o claves) usando el
ListObjects
método y usando elPrefix
parámetro.fuente
Aparentemente ahora puede crear carpetas en S3. No estoy seguro desde cuándo, pero tengo un depósito en la zona "Estándar" y puedo elegir Crear carpeta en el menú desplegable Acción.
fuente