Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

264
Vistas
¿Obtener el ID de la versión del archivo S3 cargado inmediatamente después de la carga?

Estoy lidiando con el problema inevitable de que los usuarios puedan sobrescribir archivos en mi depósito a través de una carga de JavaScript S3.

Después de cargar un archivo, suponiendo que tengo el control de versiones habilitado, ¿hay alguna forma de obtener el ID de la versión original para poder almacenarlo en mi base de datos para recuperarlo más tarde cuando visualice ese archivo?

Este es mi código de carga actual:

 s3.upload(params).on('httpUploadProgress', function(evt) { var uploaded = Math.round(evt.loaded / evt.total * 100); console.log(`File uploaded: ${uploaded}%`); }).send(function(err, data) { if(err){ alert(err); } else { alert('File is uploaded successfully!'); console.log(data); } });

No veo ningún ID de versión en la respuesta de datos, ya que parece estar en los encabezados de respuesta. Hay alguna forma de sacarlo de ahi?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Estás bien; su código no tiene acceso a la versión anterior/original versionId.

No conozco sus requisitos exactos, pero veo dos formas de hacerlo:

  1. Verifique los metadatos del archivo antes de upload con s3.headObject que devuelve data.VersionId . Si el archivo no existe, no importa; de lo contrario, puede guardar el ID de la versión original en la base de datos.

  2. No guarde las versiones en la base de datos y búsquelas con listObjectVersions cuando el archivo se muestre desde S3.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pude recuperar la ID de la versión original inmediatamente después de la carga usando el siguiente código (carga la imagen y luego toma la versión justo después de usar listObjectVersions):

 s3.upload(params).on('httpUploadProgress', function(evt) { var uploaded = Math.round(evt.loaded / evt.total * 100); console.log(`File uploaded: ${uploaded}%`); }).send(function(err, data) { if(err){ alert(err); } else { alert('File is uploaded successfully!'); console.log(data); var params = { Bucket: "mybucket", Prefix: "images/path-to-image.jpg" }; s3.listObjectVersions(params, function(err, data) { var versionId = data["Versions"][0]["VersionId"]; alert(versionId); }); } });

Asegúrese de tener habilitadas las versiones de objetos de lista en su política de depósito:

 { "Sid": "Statement2", "Effect": "Allow", "Principal": "*", "Action": "s3:ListBucketVersions", "Resource": "arn:aws:s3:::mybucket" }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda