1

Azure ストレージから大きな BLOB をダウンロードするための最良の方法とベスト プラクティスは何ですか?

  • Shared Access Signature または Shared Access Policy を使用して、BLOBのローカル コピーを作成したいと考えています。

  • 推定 BLOB サイズは 500 MB から 1 GB です

  • インターネット接続は 250Kb から 4Mb までさまざま

4

2 に答える 2

2

REST API の場合、HTTP リクエスト ヘッダーを使用します

Storage Client Library for .NET の場合はDownloadRangeToStreamを使用します

于 2013-06-02T12:02:17.607 に答える
1

最善の方法は、状況によって異なります。次の行(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);   
    }
}
于 2013-04-23T17:50:01.920 に答える