2010-04-11 5 views
1

Je voulais créer des sous-répertoires dans mon blob. Mais il ne fonctionne pas bien fonctionnéWindows Azure: Création d'un sous-répertoire à l'intérieur du blob

Voici mon code

protected void ButUpload_click(object sender, EventArgs e) 
    { 
     // store upladed file as a blob storage 
     if (uplFileUpload.HasFile) 
     { 
      name = uplFileUpload.FileName; 
      // get refernce to the cloud blob container 
      CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents"); 

      if (textbox.Text != "") 
      { 
       name = textbox.Text + "/" + name; 
      } 
      // set the name for the uploading files 
      string UploadDocName = name; 

      // get the blob reference and set the metadata properties 
      CloudBlockBlob blob = blobContainer.GetBlockBlobReference(UploadDocName); 
      blob.Metadata["FILETYPE"] = "text"; 
      blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType; 

      // upload the blob to the storage 
      blob.UploadFromStream(uplFileUpload.FileContent); 

     } 
    } 

Ce que je fait est que, si je dois créer un sous-répertoire, je vais entrer dans le nom du sous-répertoire dans la zone de texte.

par exemple, si je dois créer un fichier nommé "test.txt" dans le sous-répertoire "fichiers" Ensuite, mon TextBox.Text = fichiers et uplFileUpload.FileName = test. txt

maintenant, je les concaténer et télécharger le blob .. Mais il ne fonctionne pas bien .. Je reçois juste https://test.core.windows.net/documents/files/

Je ne reçois pas la chose entière je me attendais https://test.core.windows.net/documents/files/test.txt

Qu'est-ce que je fais mal ... Comment créer des sous-répertoires à l'intérieur du blob.

Répondre

2

Vous pouvez utiliser blobContainer.ListBlobs (nouveaux BlobRequestOptions {UseFlatBlobListing = true}); pour obtenir la vue que vous recherchez (ignore les barres obliques et liste juste tous les blobs).

0

À première vue, ce code a l'air bien. Je passerais par le code et vérifier que UploadDocName est ce que vous attendez qu'il soit avant d'appeler GetBlockBlobReference().

0

Vérifiez blob.Uri après avoir fait GetBlockBlobReference()?

BTW, chaque fois que je fais ce genre de code, j'utilise GetBlobReference() à la place ... Je me demande s'il y a une chance qu'il y ait une différence là-bas? (Ce serait extrêmement étrange.)

0

Son travail maintenant ... Ce fut mon erreur dans l'affichage du contenu du blob

protected void DisplayBlob_click(object sender, EventArgs e) 
    { 
     // get container referrence 
     CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents"); 

     // create list 
     IEnumerable<IListBlobItem> blobList = blobContainer.ListBlobs(); 

     // display name on the page 
     string names = string.Empty; 

     foreach (IListBlobItem item in blobList) 
     { 
      names += item.Uri + "<br />"; 

     } 

     LURI.Text = names; 
    } 

qui montre que le répertoire courant et ne traverse pas la ....

sous-répertoires

Merci ....

Questions connexes