necesito escribir un código en python que elimine el archivo requerido de la categoría amazon s3, puedo hacer conexiones a la categoría amazon s3 y también puedo guardar archivos, solo quiero saber cómo eliminar un archivo ? por favor ayuda si alguien sabe.cómo eliminar archivos de Amazon S3 Bucket?
Respuesta
¿A través de qué interfaz? Usando la interfaz REST, que acaba de send a delete:
DELETE /ObjectName HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Content-Length: length
Authorization: signatureValue
A través de la SOAP interface:
<DeleteObject xmlns="http://doc.s3.amazonaws.com/2006-03-01">
<Bucket>quotes</Bucket>
<Key>Nelson</Key>
<AWSAccessKeyId> 1D9FVRAYCP1VJEXAMPLE=</AWSAccessKeyId>
<Timestamp>2006-03-01T12:00:00.183Z</Timestamp>
<Signature>Iuyz3d3P0aTou39dzbqaEXAMPLE=</Signature>
</DeleteObject>
Si está utilizando una biblioteca de Python like boto, se debe exponer a una función de "eliminar", como delete_key()
.
sí, estoy usando esa biblioteca de Python, pero ¿eliminará eso el archivo? debo hacerlo de esta manera: k.key = 'images/anon-images/pequeña /' + nombre de fichero k.delete_key() es esto correcto? Por favor hagamelo saber. – Suhail
@Suhail: No he usado esa biblioteca, pero desde la fuente que he vinculado, lo que en realidad está haciendo es una llamada 'DELETE' a través de la interfaz REST. Entonces sí, a pesar del nombre "delete_key" (que estoy de acuerdo no está claro), realmente está borrando el objeto * al que se hace referencia * por la clave. –
¿Qué tal eliminar muchos archivos con un prefijo común en el nombre? ¿S3 permite alguna eliminación masiva para ese caso, o eliminarlos uno por uno (que es lento) es el deber? –
Por ahora he resuelto el problema utilizando la utilidad de Linux s3cmd. Lo utilicé como esto en Python:
No es exactamente pitónico invocar una subshell para comunicarse con S3 (una biblioteca o una transacción HTTP directa sería más elegante), pero aún funciona. No creo que merezca un voto negativo. +1. –
realmente, esto ni siquiera está mal – rbp
encontró una forma más de hacerlo mediante el boto:
from boto.s3.connection import S3Connection, Bucket, Key
conn = S3Connection(AWS_ACCESS_KEY, AWS_SECERET_KEY)
b = Bucket(conn, S3_BUCKET_NAME)
k = Key(b)
k.key = 'images/my-images/'+filename
b.delete_key(k)
Si quisiera eliminar TODO en un cubo, podría hacer: 'para x en b.list(): b.delete_key (x.clave) ' – jontsai
Me encanta cómo en mi archivo resulta ser' bucket.list() ' –
Para que este fragmento de código funcione como se presentó, deberá importar' Bucket' y 'Key' también. Como en: 'desde boto.s3.connection import S3Connection, Bucket, Key' –
Me sorprende que no es así de fácil: key.delete()
:
from boto.s3.connection import S3Connection, Bucket, Key
conn = S3Connection(AWS_ACCESS_KEY, AWS_SECERET_KEY)
bucket = Bucket(conn, S3_BUCKET_NAME)
k = Key(bucket = bucket, name=path_to_file)
k.delete()
Utilizando el Python boto3 SDK (y suponiendo que las credenciales están configurados para AWS), lo siguiente será eliminar un objeto especificado en un cubo:
import boto3
client = boto3.client('s3')
client.delete_object(Bucket='mybucketname', Key='myfile.whatever')
¿no crea esto simplemente un marcador de eliminación? – Rob
Usando boto3
(actualmente versión 1.4.4) use S3.Object.delete()
.
import boto3
s3 = boto3.resource('s3')
s3.Object('your-bucket', 'your-key').delete()
- 1. Obtiene el tamaño de los archivos de manera dinámica en Amazon S3 Bucket
- 2. Cómo eliminar archivos en amazon S3 desde ruby
- 3. Paperclip: ¿eliminar un archivo de Amazon S3?
- 4. Amazon S3 boto - cómo eliminar la carpeta?
- 5. ¿Manera eficiente de extraer archivos y metadatos de Amazon S3?
- 6. Cómo eliminar el permiso "eliminar" en Amazon S3
- 7. Cómo almacenar archivos PDF de gambas en Amazon S3
- 8. ¿Cómo eliminar muchos objetos nombrados con el prefijo común de s3 bucket?
- 9. Paperclip y Amazon S3 ¿cómo hacer rutas?
- 10. Archivo duplicado en Amazon S3
- 11. Transmisión de archivos MP3 desde Amazon S3
- 12. Sirviendo archivos estáticos de Amazon S3
- 13. Permisos de Amazon S3
- 14. Arquitectura de Amazon S3
- 15. CarrierWave and Fog, S3 bucket y store_dir configuration
- 16. Transferir archivos entre Amazon EC2 y S3
- 17. ¿Es posible ordenar archivos en Amazon S3?
- 18. Amazon S3 URL firmada en PHP
- 19. Cómo definir permisos en Amazon S3
- 20. ¿Cómo copio archivos de S3 a Amazon EMR HDFS?
- 21. caché de huella digital de URL en Amazon S3
- 22. Amazon cambio de nombre S3 y sobrescribir los archivos, recomendaciones y riesgos
- 23. Sin conexión Amazon S3
- 24. Amazon S3 y Checksum
- 25. SignatureDoesNotMatch - Amazon S3 API
- 26. Concurrencia en Amazon S3
- 27. ¿Cómo combinar JS/CSS para Amazon S3?
- 28. Iniciar sesión en Amazon S3
- 29. ¿Cómo crear un enlace de descarga para un objeto de cubo de Amazon S3?
- 30. Mejores prácticas de implementación de Amazon S3 Cloudfront
¿Qué biblioteca de Python (si la hay) está utilizando para la compatibilidad con S3? ¿O vas directamente a las interfaces REST o SOAP en tu código Python? –
estoy usando la biblioteca de python boto.s3 – Suhail