從Azure存儲下載大型BLOB的最佳方式和最佳實踐是什麼?從Azure下載BLOB
我想用共享訪問簽名或共享訪問策略做的BLOB的本地副本。
估計BLOB大小爲500 MB到1 GB
互聯網連接從250KB改變爲4MB
從Azure存儲下載大型BLOB的最佳方式和最佳實踐是什麼?從Azure下載BLOB
我想用共享訪問簽名或共享訪問策略做的BLOB的本地副本。
估計BLOB大小爲500 MB到1 GB
互聯網連接從250KB改變爲4MB
在REST API的情況下使用HTTP request header
在存儲客戶端庫的情況下,對.NET使用DownloadRangeToStream
的最佳方式取決於你的情況。是否有一個特定的原因阻止您不按照以下(Java代碼)的方法做某件事?我已經看到過這樣的例子,但是有興趣瞭解爲什麼你認爲它不適合你。
public class SASread
{
public static void main(String[] args) throws URISyntaxException, FileNotFoundException, StorageException, IOException
{
URI baseuri = new URI("http://greengrass.blob.core.windows.net");
CloudBlobClient blobclient = new CloudBlobClient(baseuri);
MyDownloadBlob("container1",
"sr=c&sv=2012-02-12&sig=ADsFalIpE1XkaneQpWwtpM3AhY%2BAwiUtbbo1ANbIoJA%3D&si=r",
blobclient);
}
public static void MyDownloadBlob(String containerName, String containerSAS, CloudBlobClient blobClient) throws URISyntaxException, StorageException, FileNotFoundException, IOException
{
String blobName = "image3.jpg";
String localFileName = "c:\\myoutputimages\\image3.jpg";
URI uri = new URI(blobClient.getEndpoint().toString() + "/" +
containerName + "/" +
blobName +
"?" +
containerSAS);
CloudBlockBlob sasBlob = new CloudBlockBlob(uri, blobClient);
File fileTarget = new File(localFileName);
sasBlob.download(new FileOutputStream(fileTarget));
System.out.println("The blob at:\n" + uri + "\nwas downloaded from the cloud to local file:\n" + localFileName);
}
}
:使用CDN!這將在邊緣點上創建blob的緩存副本,因此很可能會加快傳輸速率... – Leonardo 2013-04-23 18:08:00
請再次檢查問題,BLOB大小約爲1 GB,我想恢復下載。 – 2013-04-24 10:25:30
你能澄清你所說的「下載」是什麼意思?你想製作一個本地副本或者你想在你的應用程序中使用它?我們討論的內容有多大? 1GB? 10GB? 50GB?你的互聯網連接如何?它有多快? – Leonardo 2013-04-23 16:03:47
如果我提出一個小建議,我編輯了Q – 2013-04-23 16:30:23