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

383
Visualizações
Cómo eliminar correctamente el objeto s3 usando s3 sdk

Tengo un cubo donde los usuarios cargan su contenido. así es como se ve el cubo

 bucket name : example-cdn Directory under it : files

Ahora, si la identificación del usuario es 2 y el tiempo es 1492693589 , ahora, si el usuario carga una imagen, la URL será

 example-cdn/files/2/1492693589/image.png

Ahora, si trato de eliminar esa imagen en particular, todo el directorio se elimina con el archivo.

aquí está el código

 $s3 = new S3Client([ 'version' => 'latest', 'region' => 'ap-south-1', 'credentials' => array( 'key' => '************', 'secret' => '*****************************' ) ]); $s3->deleteObject(array('Bucket' => "example-cdn", 'Key' => "files/2/1492693589/image.png"));

Ahora, cuando se ejecute la línea anterior, también elimine la carpeta de file y 2 carpetas. ¿Cómo puedo eliminar solo el archivo de imagen image.png

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Las carpetas no existen en Amazon S3.

Amazon S3 es una tienda de objetos planos . No almacena archivos dentro de carpetas/directorios. Sin embargo, los archivos se pueden almacenar con un nombre de archivo ('Clave') que incluya barras, por ejemplo, images/cat.jpg . Esto da la ilusión de directorios, pero en realidad no crea el directorio.

Por ejemplo, este comando creará el directorio de images simplemente nombrando un archivo como si estuviera en el directorio (simulado):

 aws s3 cp cat.jpg s3://bucket/images/cat.jpg

Al ver el cubo en la consola de administración, se mostrará el directorio de images y cat.jpg estará dentro. ¡Pero en realidad no existe!

Este comando moverá la imagen a un directorio diferente (simulado):

 aws s3p mv s3://bucket/images/cat.jpg s3://bucket/pictures/cat.jpg

Esto hará que desaparezca el directorio de images y aparecerá un nuevo directorio de pictures . Nuevamente, esto se debe a que los directorios en realidad no existen; simplemente se muestran de esa manera porque a los humanos les gusta el concepto de directorios.

Cuando se trabaja a través de la API de AWS, los directorios se conocen como prefijos comunes . Se comportan como directorios, pero no existen.

Pero, podría preguntarse: "¿Qué sucede si voy a la consola de administración de Amazon S3 y hago clic en Crear carpeta ? ¡Seguramente eso crea una carpeta!"

En realidad no. Simplemente crea un archivo de cero bytes con el nombre del directorio, lo que obliga a que aparezca el directorio. Eliminar ese archivo de cero bytes hará que el directorio desaparezca porque ya no hay nada en esa ruta.

En pocas palabras: los directorios no existen, pero siéntase libre de mover cosas dentro y fuera de ellos como si existieran.

over 4 years ago · Santiago Trujillo Relatório

0

Los cubos S3 emulan carpetas. En realidad no existen. Si no hay una clave con el prefijo "archivos/2/", entonces no habrá una carpeta visible.

Si realmente desea que las "carpetas" no desaparezcan, asegúrese de que haya un archivo allí para que aparezcan.

Para aclarar: esto no es exclusivo del SDK, así es como funciona el servicio.

over 4 years ago · Santiago Trujillo 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