python - 使用 AWS S3 数据在 Django 中创建模型并指向它们

标签 python django amazon-web-services amazon-s3

我想使用 AWS S3 中的现有数据在 Django 中创建模型

def create_model(**kwargs):
    return Video.objects.create(**kwargs)

for s3_object_mp4 in my_bucket.objects.all():

    path_mp4, key_mp4 = os.path.split(s3_object_mp4.key)
    create_model(video_name=str('key_mp4'),
                         video_url='??')

我用它来指向创建的数据:

client = boto3.client('s3', 'eu-central-1')
url = client.generate_presigned_url('get_object',Params={'Bucket': bucket_name, 'Key': key_mp4}, ExpiresIn=604800)

这里有两个问题:

1) 如果此链接将过期,这是否意味着过期后我必须删除模型,并最多每隔 7 天重新填充我的模型?

2) 每次用户观看 html (url) 上的视频时,亚马逊是否都会收费?然后另一次因为链接过期而重新填充整个数据库?

最佳答案

1) 您的预签名 URL 将过期。删除并重新填充模型是一种选择。另一种选择是就地执行更新

2) S3 根据存储的数据和请求定价。根据this answer预签名 URL 的生成完全是在客户端进行的,因此是免费的。

关于python - 使用 AWS S3 数据在 Django 中创建模型并指向它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467430/

相关文章:

python - 在 django admin 中验证依赖内联

python - 可以与 Zookeeper 交谈,但不能与消息代理交谈

python - matplotlib 3d 轴刻度、标签和 LaTeX

python - 访问与外键链接的 SQLAlchemy 模型

python - 在python中解析json字段

amazon-web-services - 使用beantalk从正在运行的docker容器中在主机EC2实例上安装目录

amazon-web-services - 如何使我的 Lambda 函数与本地计算机上运行的服务器对话?

python - 如何通过装饰器获取底层函数参数信息?

python - 如何从Python中的两个文件中找到共同的模式集?

python - 更改 Django autocomplete_fields 标签