2017-03-24 1 views
1

Mit AWS S3 kann ich eine Datei test.png in jedes Verzeichnis hochladen, das ich mag, unabhängig davon, ob es existiert oder nicht ... weil S3 automatisch den vollständigen Pfad & Verzeichnisse generiert.Wie kann Azure File Share automatisch nicht vorhandene Verzeichnisse generieren?

Zum Beispiel, wenn ich, wenn ich auf S3 hochladen, ich den this/is/a/new/home/for/test.png Pfad verwenden, wird S3 Verzeichnisse erstellen this, is, a ... und test.png in den richtigen Ordner hochladen.

Ich migriere zu Azure, und ich suche ihren Dateispeicher zu verwenden. Es scheint jedoch, dass ich jedes Verzeichnis manuell erstellen muss ... Ich könnte es natürlich programmgesteuert machen, indem ich überprüfe, ob der Ordner existiert und wenn nicht, erstelle ihn ... aber wow ... warum sollte ich so hart arbeiten?

Ich versuche, tat

file_service.create_file_from_path('testshare', 'some/long/path', 'test.png', 'path/to/local/location/of/test.png') 

jedoch, dass beschwert sich, dass das Verzeichnis nicht existiert ... und funktioniert nur, wenn ich entweder manuell die Verzeichnisse erstellen oder some/long/path mit None ersetzen.

Ist es möglich, Azure nur einen Pfad zu übergeben und die Verzeichnisse erstellen zu lassen?

Antwort

1

Azure Files ahmt das OS File System genau nach und daher muss dieses Verzeichnis vorhanden sein, um eine Datei in ein Verzeichnis zu übertragen. Das heißt, wenn Sie eine Datei in einer verschachtelten Verzeichnisstruktur erstellen müssen, muss diese Verzeichnisstruktur vorhanden sein. Der Azure-Dateidienst erstellt diese Struktur nicht für Sie.

Eine bessere Option in Ihrem Szenario wäre Azure Blob Storage zu verwenden. Es ahmt genau das Verhalten von Amazon S3 nach, das Sie oben erwähnt haben. Sie können einen Container (ähnlich wie Bucket in S3) erstellen und dann eine Datei mit einem Namen wie this/is/a/new/home/for/test.png hochladen.

Bitte beachten Sie jedoch, dass die Ordner im Blob Storage virtuell sind (wie S3) und nicht die echten. Im Wesentlichen ist der Name, mit dem der Blob (ähnlich wie Objekt in S3) gespeichert wird, this/is/a/new/home/for/test.png.

+0

Oh, okay, danke. Gibt es eine Chance zu wissen, ob es schneller ist, große (5 GB) Dateien aus Blobs oder aus dem Dateispeicher zu lesen? – pookie

+0

Den Durchsatz von Azure Storage finden Sie hier: https://docs.microsoft.com/en-us/azure/storage/storage-scalability-targets. Azure-Dateien sind alle für einen anderen Zweck gedacht. Sie eignen sich normalerweise für Anwendungen wie "Lift & Shift", da Sie eine Dateifreigabe als Netzlaufwerk anhängen können. Weitere Informationen finden Sie unter folgendem Link: https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/deciding-when-to-use-azure-blobs--azure-files--or- Azure-Daten-Festplatten. HTH. –

+0

Danke, Kumpel. Ich werde mit Blobs gehen müssen, so scheint es. – pookie

Verwandte Themen