Come creare un sottocontenitore nella posizione di archiviazione blu.Come creare un sottocontenitore nella posizione di archiviazione blu
Fateci sapere
Come creare un sottocontenitore nella posizione di archiviazione blu.Come creare un sottocontenitore nella posizione di archiviazione blu
Fateci sapere
Windows Azure non fornisce il concetto di contenitori gerarchici, ma fornisce un meccanismo per l'attraversamento dell'erarchia per convenzione e API. Tutti i contenitori sono memorizzati allo stesso livello. È possibile ottenere la funzionalità simliar utilizzando le convenzioni di denominazione per i nomi blob.
Ad esempio, è possibile creare un contenitore denominato "contenuto" e creare blob con i seguenti nomi in quel contenitore:
content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg
content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg
Nota che queste macchie sono una lista piatta contro il vostro contenitore "contenuti" . Detto questo, usando "/" come delimitatore convenzionale, ti fornisce la funzionalità per attraversarli in modo gerarchico.
protected IEnumerable<IListBlobItem>
GetDirectoryList(string directoryName, string subDirectoryName)
{
CloudStorageAccount account =
CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudBlobClient client =
account.CreateCloudBlobClient();
CloudBlobDirectory directory =
client.GetBlobDirectoryReference(directoryName);
CloudBlobDirectory subDirectory =
directory.GetSubdirectory(subDirectoryName);
return subDirectory.ListBlobs();
}
È quindi possibile chiamare questo come segue:
GetDirectoryList("content/blue", "images")
Nota l'uso di GetBlobDirectoryReference e GetSubDirectory metodi e il tipo CloudBlobDirectory invece di CloudBlobContainer. Questi forniscono la funzionalità trasversale che probabilmente stai cercando.
Questo dovrebbe aiutarti a iniziare. Fammi sapere se questo non risponde alla tua domanda:
[Grazie a Neil Mackenzie di ispirazione]
Si riferisce allo stoccaggio blob? In tal caso, la gerarchia è semplicemente StorageAccount/Container/BlobName. Non ci sono contenitori nidificati.
Detto questo, è possibile utilizzare le barre nel nome blob per simulare i contenitori annidati nell'URI. Vedi this article on MSDN per i dettagli sui nomi.
ho aggree con risposta tobint e voglio aggiungere qualcosa a questa situazione perché anche io ho bisogno allo stesso modo di upload i miei giochi html per Azure creano con questo directory:
Quindi Dopo la vostra raccomanda ho cercato di caricare i miei contenuti con lo strumento che è Azure Explorer e si può scaricare strumento e codice sorgente con questo URL: Azure Storage Explorer
Prima di tutto ho cercato di caricare tramite strumento ma non consente il caricamento di directory gerarchiche perché non è necessario: How to create sub directory in a blob container
Infine, eseguo il debug del codice sorgente di Azure Storage Explorer e ho modificato il metodo Background_UploadBlobs e il campo UploadFileList nel file StorageAccountViewModel.cs. Puoi modificarlo come desideri. Potrei aver commesso errori di ortografia:/Mi dispiace, ma questo è solo il mio consiglio.
codice di esempio
string myfolder = "<folderName>";
string myfilename = "<fileName>";
string fileName = String.Format("{0}/{1}.csv", myfolder, myfilename);
CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
Si prega di essere consapevoli del fatto che a partire dal SDK versione 2.0 il bit 'GetBlobDirectoryReference' non funziona. Invece, siamo in grado di utilizzare il seguente: 'contenitore CloudBlobContainer = cloudBlobClient.GetContainerReference (directoryName);' ' CloudBlobDirectory sottodirectory = container.GetDirectoryReference (subDirectoryName);' ecc ... – Knelis
C'è un'implementazione PHP di questo concetto? –
Si suppone che sia 'cloudBlobClient' o' client' nelle chiamate di funzione? – juunas