Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

266
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda