2017-02-08 63 views
0

我想創建以下在Azure上的文件夾結構:現在創建使用Azure存儲REST API的文件夾,而無需創建一個默認的BLOB文件

mycontainer 
    -images 
     --2007 
      ---img001.jpg 
      ---img002.jpg 

,一個方法是使用PUT請求的Blob和上傳img001.jpg指定整個路徑

PUT 「myContainer中/圖片/ 2007/img001.jpg」

但是,我想首先創建的文件夾images2007然後在不同的請求中上傳blob img001.jpg

現在,當我試圖這樣做使用PUT BLOB要求:

StringToSign:

PUT 











x-ms-blob-type:BlockBlob 
x-ms-date:Tue, 07 Feb 2017 23:35:12 GMT 
x-ms-version:2016-05-31 
/account/mycontainer/images/ 

HTTP URL

sun.net.www.protocol.http.HttpURLConnection:http://account.blob.core.windows.net/mycontainer/images/ 

它創建一個文件夾,但它不是空的。通過,默認它創建一個沒有名字的空blob文件 。

現在,很多人說我們不能創建一個空的文件夾。但是,那麼怎麼來,我們可以使用azure門戶,因爲瀏覽器必須發送某種類型的休息請求來創建文件夾。

我認爲它必須做些什麼Content-Typex-ms-blob-content-type,應該指定它以便告訴天藍色的文件夾不是blob。 但是,我很困惑。

回答

1

這是不可能的 - 文件夾結構只是虛擬的。

請參閱Get started with Azure Blob storage using .NET。您只能創建一個容器,並且該容器中的其他所有內容都是一個blob。

摘錄:

如上圖所示,您可以命名在他們 名路徑信息的斑點。這會創建一個虛擬目錄結構,您可以像傳統文件系統那樣組織和遍歷該虛擬目錄結構。注意 目錄結構僅爲虛擬 - Blob存儲中可用的唯一資源 是容器和Blob。

+0

但是,亞馬遜,我能做到這一點。爲什麼會在Azure中造成問題? –

+1

最後我用S3進行了檢查,它也有2級的層次結構:Bucket&Objects。另外,如果你確實需要一個像結構一樣的真正的文件夾,你可能也想看看Azure文件服務。在那裏你可以創建一個沒有任何內容的目錄。 –

+0

@GauravMantri你可以用亞馬遜的正斜槓給路徑創建一個空的文件夾,如「images /」 –

1

我想先創建的文件夾的圖像和2007年,然後在不同的請求上傳的blob img001.jpg

我布倫丹·格林同意,目前,Azure的Blob存儲只是使我們通過用名稱中的路徑信息命名blob來創建虛擬目錄結構。

我認爲它必須做一些Content-Type,即x-ms-blob-content-type,它應該被指定來告訴azure它的文件夾不是blob。但是,我很困惑。

你可以檢查the description of Request Headers可能爲Put Blob操作來設置,你會發現它不支持通過指定某些請求頭創建一個空文件夾。

此外,正如Gaurav Mantri所說,如果你真的想創建一個沒有內容的空文件夾結構,你可以嘗試使用Azure File storage,它也使我們能夠use REST API to access Azure File storage。並使用Create Directory操作雲在指定的共享目錄或父目錄下創建新目錄。

PUT https://myaccount.file.core.windows.net/myshare/myparentdirectorypath/mydirectory?restype=directory

相關問題