Amazon S3 和 Cloudfront - 发布作为散列文件名上传的文件
Amazon S3 and Cloudfront - Publish file uploaded as hashed filename
技术:
- Python3
- Boto3
- AWS
我有一个使用 Python3 和 Boto3 构建的项目,用于与 Amazon S3 服务中的存储桶通信。
流程是用户向服务发布图片;这些图像被上传到 S3 存储桶,并且可以使用散列文件名而不是真实文件名通过亚马逊云端服务。
示例:
- (S3) 上传密钥:/category-folder/png/image.png
- (CloudFront) 服务:
http://d2949o5mkkp72v.cloudfront.net/d824USNsdkmx824
我想将文件上传到 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 个字符。
技术:
- Python3
- Boto3
- AWS
我有一个使用 Python3 和 Boto3 构建的项目,用于与 Amazon S3 服务中的存储桶通信。
流程是用户向服务发布图片;这些图像被上传到 S3 存储桶,并且可以使用散列文件名而不是真实文件名通过亚马逊云端服务。
示例:
- (S3) 上传密钥:/category-folder/png/image.png
- (CloudFront) 服务:
http://d2949o5mkkp72v.cloudfront.net/d824USNsdkmx824
我想将文件上传到 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 个字符。