Estoy usando modelos de usuario de Django para almacenar mis usuarios. Mi usuario tendrá lo habitual: nombre, usuario, contraseña.
Aquí hay un ejemplo:
class UserProfile(models.Model): user = models.OneToOneField(User, primary_key=True) photo_url = models.CharField(max_length=200, blank=True, default='') # the url to fetch photoHabrá un campo para el que necesitaré generar una URL y esa es la URL de la foto que cargó en S3, de esa manera mi cliente puede descargarla y mostrarla.
¿Cuál es la mejor manera de generar una url indefinida en boto3?
De: Generación de URL prefirmadas . No hay forma de especificar una URL que no caduque. Utilice un valor int grande para el parámetro ExpiresIn . Intentalo.
import boto3 import requests # Get the service client. s3 = boto3.client('s3') # Generate the URL to get 'key-name' from 'bucket-name' url = s3.generate_presigned_url( ClientMethod='get_object', Params={ 'Bucket': 'bucket-name', 'Key': 'key-name' }, ExpiresIn=9999999999 )en realidad no podemos crear una url prefirmada sin caducidad, el período máximo de caducidad es de una semana para S3 versión 4 y para v2 puede ser mayor.