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

389
Visualizações
Cargue diferentes archivos con nombres de archivo idénticos usando boto3 y Django (y S3)

Estoy tratando de crear un servidor Django que almacene archivos multimedia en S3 donde los usuarios pueden cargar sus propios archivos que pueden tener el mismo nombre de archivo pero ser archivos diferentes. Configuré S3 y lo hice funcionar a través de comandos explícitos de Python como

 import boto3 s3 = boto3.resource('s3') s3.Object('my-bucket','text.txt').put(Body=open('/text.txt', 'rb'))

Estoy configurando mi modelo así:

 import boto3 s3 = boto3.resource('s3') class MyModel(models.Model): my_file = models.FileField() file_url = models.CharField(max_length=200, blank=True, null=True)

En mi views.py, mi formulario de carga es:

 import boto3 s3 = boto3.resource('s3') ... if form.is_valid(): # creates object from form but doesn't go into database mymodel = form.save(commit=False) uploaded_file = request.FILES['my_file'] s3.Object('my-bucket',uploaded_file.name).put(Body=request.FILES['uploaded_file']) mymodel.file_url = 'http://my-bucket.s3.amazonaws.com/' + uploaded_file.name;

Me gustaría que los usuarios carguen sus propios archivos que pueden tener el mismo nombre de archivo pero que sean archivos diferentes. Puedo imaginar generar una cadena md5 y luego agregarla al nombre del archivo, pero luego, cuando las personas vayan a descargar sus archivos, tendrán una cadena hash aleatoria agregada al final del archivo.

Supongo que hay una forma mejor y más elegante de hacer esto. ¿Alguien puede ayudar?

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

0

Si es posible, tendría un identificador único para el usuario y cargaría todos los archivos para ese usuario con el identificador adjunto a la URL como una carpeta. Un ejemplo sería si su depósito fuera mybucket y su identificador fuera el ID de usuario, su URL de carga sería ' http://my-bucket.s3.amazonaws.com/ ' + user.Id + '/' + uploaded_file.name . S3 no tiene una estructura de directorios, pero usa prefijos de nombre como una forma de facilitar la organización de sus archivos. A continuación se muestra un enlace a la documentación pertinente:

S3: trabajar con carpetas

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