简体   繁体   中英

Amazon S3 and Cloudfront - Publish file uploaded as hashed filename

Technologies:

  • Python3
  • Boto3
  • AWS

I have a project built using Python3 and Boto3 to communicate with a bucket in Amazon S3 service.

The process is that a user posts images to the service; these' images are uploaded to an S3 bucket, and can be served through amazon cloudfront using a hashed file name instead of the real file name.

Example:

  • (S3) Upload key: /category-folder/png/image.png
  • (CloudFront) Serve: http://d2949o5mkkp72v.cloudfront.net/d824USNsdkmx824

I want to file uploaded to S3, appear as hash number as file name in cloudfront server.

Does anyone have knowledge that makes S3 or cloudfront automatically convert and publish a file-name to a hash name.

In order to suffice my needs I created the fields needed to maintain the keys (to make them unique; both on S3 and in my mongodb)

Fields :

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

With the mentioned fields; then one can check if the key exists by simply searching for the key, the new file_name, the category, and the type; if it exists in the database then file exists.

To generate the unique id:

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

This limits the ID to the length of 20 characters.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM