Amazon S3 和 Cloudfront - 发布作为散列文件名上传的文件

Amazon S3 and Cloudfront - Publish file uploaded as hashed filename

技术:

我有一个使用 Python3 和 Boto3 构建的项目,用于与 Amazon S3 服务中的存储桶通信。

流程是用户向服务发布图片;这些图像被上传到 S3 存储桶,并且可以使用散列文件名而不是真实文件名通过亚马逊云端服务。

示例:

我想将文件上传到 S3,在云端服务器中显示为哈希值作为文件名。

有没有人知道如何使 S3 或 cloudfront 自动将文件名转换并发布为哈希名称。

为了满足我的需求,我创建了维护密钥所需的字段(使它们唯一;在 S3 和我的 mongodb 上)

字段:

original_file_name = my_file_name
file_category = my_images, children, fun 
file_type = image, video, application
key = uniqueID

具有上述字段;然后可以通过简单地搜索键、新的 file_name、类别和类型来检查键是否存在;如果它存在于数据库中则文件存在。

生成唯一id:

def get_key(self):
    from uuid import uuid1
    return uuid1().hex[:20]

这将 ID 的长度限制为 20 个字符。