0

Technologies:Amazon S3 und Cloudfront - Publish Datei hochgeladen als gehasht Dateiname

  • Python3
  • Boto3
  • AWS

Ich habe ein Projekt mit Python3 und Boto3 gebaut kommunizieren mit einem Eimer in Amazon S3-Service.

Der Prozess ist, dass ein Benutzer Bilder an den Dienst sendet; Diese Bilder werden in einen S3-Bucket hochgeladen und können über Amazon Cloudfront mit einem Hash-Dateinamen anstelle des echten Dateinamens geliefert werden.

Beispiel:

  • (S3) Lade-Taste: /category-folder/png/image.png
  • (Cloudfront) Serve: http://d2949o5mkkp72v.cloudfront.net/d824USNsdkmx824

Ich möchte hochgeladen Datei bis S3, erscheinen als Hash-Nummer als Dateiname im Cloudfront-Server.

Hat jemand Wissen, das S3 oder Cloudfront automatisch konvertiert und veröffentlicht einen Dateinamen in einen Hash-Namen.

+0

Die Cloudfront CDN nur die Urne für den Inhalt und erscheinen als URL ... Also, was ist Ihr Problem? – mootmoot

+0

Ich möchte nicht den vollständigen Pfad + Dateiname verwenden, ich möchte eine Hash-Version verwenden (wie spotify zum Beispiel) - ist das möglich? wie in eingebaut, oder muss ich es selbst hacken? – belthazorNv

+0

@belthazorNv müssen Sie es selbst Hash- –

Antwort

0

Um meine Bedürfnisse zu genügen, habe ich die Felder benötigt, um die Schlüssel zu erhalten (sie einzigartig zu machen, sowohl auf S3 und in meinem mongodb)

Felder:

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

Mit dem erwähnte Felder; dann kann man prüfen, ob der Schlüssel existiert, indem man einfach nach dem Schlüssel, dem neuen Dateiname, der Kategorie und dem Typ sucht; Wenn es in der Datenbank existiert, existiert die Datei.

Um die eindeutige ID zu erzeugen:

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

Dies begrenzt die ID auf die Länge von 20 Zeichen.

Verwandte Themen