Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

801
Views
¿Cómo puedo mover (no copiar) un archivo en AWS S3 usando su SDK?

Necesito mover un archivo en el depósito de AWS s3 a otra ubicación, ejemplo:

  • De: http://aws.xxxxx/xxxx/locationA/file.png
  • Para: http://aws.xxxxx/xxxx/locationB/file.png

Revisé la documentación:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html , pero no encontré ninguna mención de mover o actualizar el archivo (estoy pensando que podría actualizar la ruta de la clave del archivo...).

Hasta ahora, parece que necesito copiar el archivo y luego eliminar el anterior. ¿Hay una forma más sencilla de hacerlo?

Mi código actual que copia y luego elimina el archivo antiguo:

 function moveFileInAws(fromLocation, toLocation, callback) { awsSdk.copyObject({ Bucket: BUCKET_NAME, ACL: 'public-read', CopySource: fromLocation, Key: toLocation }, (err, data) => { if (err) { console.log(err) return callback("Couldn't copy files in directory") } // callback() awsSdk.deleteObject({ Key: fromLocation }, (err, data) => { if (err) { console.log("Couldn't delete files in directory") console.log(err) return callback("Couldn't delete files in directory") } callback() }) }) }
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Basado en la respuesta aquí: AWS S3: mueva un objeto a una carpeta diferente en la que el usuario @Michael-sqlbot comenta:

Esto se debe a que S3, en sí mismo, no tiene una operación atómica de movimiento o cambio de nombre... por lo que realmente no hay una alternativa.

Y los documentos aquí: https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-s3-objects.html#copy-object (para el SDK de Java, pero parece ser útil aquí) que señala:

Puede usar copyObject con deleteObject para mover o cambiar el nombre de un objeto, primero copiando el objeto con un nuevo nombre (puede usar el mismo depósito como origen y destino) y luego eliminando el objeto de su ubicación anterior.

Parece que la infraestructura de S3 simplemente no admite mover o cambiar el nombre en una sola operación. Debes copiar y luego borrar.

over 4 years ago · Santiago Trujillo Report

0

Amazon S3 no proporciona una API para mover o cambiar el nombre de un objeto de un depósito a otro en un solo paso.

Como en su ejemplo, puede usar copyObject con deleteObject para mover o cambiar el nombre de un objeto, primero copiando el objeto con un nuevo nombre (puede usar el mismo depósito como origen y destino) y luego eliminando el objeto de su ubicación anterior .

Para obtener más información, consulte Realización de operaciones en objetos de Amazon S3.

over 4 years ago · Santiago Trujillo Report

0

No estoy nada familiarizado con el SDK de JavaScript que está utilizando, pero al usar aws cli, hay:

 aws s3 mv s3://bucket/folder/file s3://bucket/folder2/file

que parece que haría lo que quieres. No estoy seguro acerca del SDK de JavaScript.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!