2011-07-05 8 views

Trả lời

-1

Thử Blob Service API

http://msdn.microsoft.com/en-us/library/dd135733.aspx

Tuy nhiên, 400MB là một lớn tập tin và tôi không chắc chắn một cuộc gọi API duy nhất sẽ đối phó với một cái gì đó kích thước này, bạn có thể cần phải chia nó và tái tạo lại sử dụng mã tùy chỉnh.

11

Nếu bạn đang tìm kiếm một công cụ để làm như vậy, tôi có thể đề nghị bạn hãy xem Công cụ lưu trữ đám mây của chúng tôi (http://www.cerebrata.com/Products/CloudStorageStudio). Nó là một công cụ thương mại để quản lý Windows Azure lưu trữ và dịch vụ lưu trữ. Bạn cũng có thể tìm danh sách toàn diện các công cụ Quản lý lưu trữ Windows Azure tại đây: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx

Hy vọng điều này sẽ hữu ích.

6

StorageClient được tích hợp sẵn trong đó. Không cần phải viết thực sự bất cứ điều gì:

var account = new CloudStorageAccount(creds, false); 

var client = account.CreateCloudBlobClient(); 

var blob = client.GetBlobReference("/somecontainer/hugefile.zip"); 

//1MB seems to be a pretty good all purpose size 
client.WriteBlockSizeInBytes = 1024; 

//this sets # of parallel uploads for blocks 
client.ParallelOperationThreadCount = 4; //normally set to one per CPU core 

//this will break blobs up automatically after this size 
client.SingleBlobUploadThresholdInBytes = 4096; 

blob.UploadFile("somehugefile.zip"); 
+0

Ồ, và nếu bạn đang tìm kiếm một chương trình đẹp, miễn phí, hãy thử ClumsyLeaf CloudXplorer. Hoạt động tốt. – dunnry

+0

Nhận xét thực sự là câu trả lời Ryan :). OP dường như đang tìm kiếm một Giao diện trong GU . – IUnknown

36

công cụ miễn phí:

  1. Visual Studio 2010 - cài đặt các công cụ Azure và bạn có thể tìm thấy những đốm màu trong cửa sổ Server Explorer
  2. CloudBerry Explorer Mây Berry Lab cho Azure Blob lưu trữ
  3. ClumpsyLeaf CloudXplorer
  4. Azure lưu trữ Explorer từ CodePlex (thử phiên bản 4 beta)

Có một chương trình cũ được gọi là Azure Blob Explorer hoặc một cái gì đó không còn hoạt động với Azure SDK mới.

Trong số này, cá nhân tôi thích CloudBerry Explorer là tốt nhất.

+2

+1 VS2012 với công cụ Azure cũng có tính năng này, có thể đáng cập nhật câu trả lời của bạn với –

+0

Tôi vừa kiểm tra và tôi biết đã lâu rồi, nhưng hôm nay CloudXplorer có thể hiển thị các thuộc tính blob, danh sách, tạo và tải xuống ảnh chụp nhanh và thậm chí duyệt nội dung của nhiều tệp vùng chứa như zips và vhds. Thật tuyệt vời cho mục đích đó, và tôi không thể thấy điều đó trong các công cụ khác. – John

+0

Azure giờ đây có gói Azure CLI - tải xuống từ https://azure.microsoft.com/en-in/documentation/articles/storage-azure-cli/ - tài liệu rất tốt và chỉ hoạt động! – shekhar

1

Bạn có thể tải tệp lớn trực tiếp lên Bộ nhớ Azure Blob trực tiếp bằng cách sử dụng động từ HTTP PUT, tệp lớn nhất mà tôi đã thử với mã bên dưới là 4,6 Gb. Bạn có thể làm điều này trong C# như thế này:

// write up to ChunkSize of data to the web request 
void WriteToStreamCallback(IAsyncResult asynchronousResult) 
{ 
    var webRequest = (HttpWebRequest)asynchronousResult.AsyncState; 
    var requestStream = webRequest.EndGetRequestStream(asynchronousResult); 
    var buffer = new Byte[4096]; 
    int bytesRead; 
    var tempTotal = 0; 

    File.FileStream.Position = DataSent; 

    while ((bytesRead = File.FileStream.Read(buffer, 0, buffer.Length)) != 0 
     && tempTotal + bytesRead < CHUNK_SIZE 
     && !File.IsDeleted 
     && File.State != Constants.FileStates.Error) 
    { 
     requestStream.Write(buffer, 0, bytesRead); 
     requestStream.Flush(); 

     DataSent += bytesRead; 
     tempTotal += bytesRead; 

     File.UiDispatcher.BeginInvoke(OnProgressChanged); 
    } 

    requestStream.Close(); 

    if (!AbortRequested) webRequest.BeginGetResponse(ReadHttpResponseCallback, webRequest); 
} 

void StartUpload() 
{ 
    var uriBuilder = new UriBuilder(UploadUrl); 

    if (UseBlocks) 
    { 
     // encode the block name and add it to the query string 
     CurrentBlockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(Guid.NewGuid().ToString())); 
     uriBuilder.Query = uriBuilder.Query.TrimStart('?') + string.Format("&comp=block&blockid={0}", CurrentBlockId); 
    } 

    // with or without using blocks, we'll make a PUT request with the data 
    var webRequest = (HttpWebRequest)WebRequestCreator.ClientHttp.Create(uriBuilder.Uri); 
    webRequest.Method = "PUT"; 
    webRequest.BeginGetRequestStream(WriteToStreamCallback, webRequest); 
} 

Các UploadUrl được tạo ra bởi Azure và chứa một Chữ ký Chia sẻ kết nối, URL SAS này nói nơi blob là để được tải lên và bao lâu thời gian truy cập bảo mật (viết quyền truy cập trong trường hợp của bạn). Bạn có thể tạo ra một URL SAS như thế này:

readonly CloudBlobClient BlobClient; 
readonly CloudBlobContainer BlobContainer; 

public UploadService() 
{ 
    // Setup the connection to Windows Azure Storage 
    var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString"); 
    BlobClient = storageAccount.CreateCloudBlobClient(); 

    // Get and create the container 
    BlobContainer = BlobClient.GetContainerReference("publicfiles"); 
} 

string JsonSerializeData(string url) 
{ 
    var serializer = new DataContractJsonSerializer(url.GetType()); 
    var memoryStream = new MemoryStream(); 

    serializer.WriteObject(memoryStream, url); 

    return Encoding.Default.GetString(memoryStream.ToArray()); 
} 

public string GetUploadUrl() 
{ 
    var sasWithIdentifier = BlobContainer.GetSharedAccessSignature(new SharedAccessPolicy 
    { 
     Permissions = SharedAccessPermissions.Write, 
     SharedAccessExpiryTime = 
      DateTime.UtcNow.AddMinutes(60) 
    }); 
    return JsonSerializeData(BlobContainer.Uri.AbsoluteUri + "/" + Guid.NewGuid() + sasWithIdentifier); 
} 

Tôi cũng có một chủ đề về đề tài này, nơi bạn có thể tìm thêm thông tin ở đây How to upload huge files to the Azure blob from a web page

3

tôi sử dụng Cyberduck để quản lý lưu trữ blob của tôi.

Ứng dụng này miễn phí và rất dễ sử dụng. Nó cũng hoạt động với các giải pháp lưu trữ đám mây khác.

thời gian gần đây tôi thấy cái này cũng như: CloudXplorer

Hy vọng nó giúp.

+3

Cyberduck loại bỏ hỗ trợ cho azure. – Marcom

+1

Cyberduck hiện đã hỗ trợ cho azure một lần nữa! http://betanews.com/2014/07/23/cyberduck-restores-windows-azure-support-adds-new-sshsftp-protocol-implementation/ – CodeThug

2

Bạn có thể sử dụng Cloud Combine cho đáng tin cậy và nhanh chóng tải lên tập tin để lưu trữ Azure blob.

0

Tôi đã sử dụng tất cả những công cụ đề cập trong bài, và tất cả các hoạt động vừa phải tốt với các đốm màu khối. Tuy nhiên tôi thích nhất là BlobTransferUtility

By BlobTransferUtility mặc định chỉ thực hiện các đốm màu khối. Tuy nhiên, chỉ thay đổi 2 dòng mã và bạn cũng có thể tải lên các đốm màu trang. Nếu bạn, như tôi, cần phải tải lên một hình ảnh máy ảo nó cần phải là một blob trang.

(đối với phần chênh lệch xin vui lòng see this MSDN article.)

Để tải lên các đốm màu trang chỉ cần thay đổi dòng 53 và 62 của BlobTransferHelper.cs từ

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

để

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

Các chỉ có điều khác để biết về ứng dụng này là bỏ chọn HELP khi bạn lần đầu tiên chạy chương trình để xem giao diện người dùng thực tế.

18

Cách đơn giản nhất là sử dụng Azure lưu trữ PowerShell. Nó cung cấp nhiều lệnh để quản lý container lưu trữ của bạn/blob/table/queue.

Đối với trường hợp bạn đã đề cập, bạn có thể sử dụng Set-AzureStorageBlobContent có thể tải tệp cục bộ lên bộ nhớ xanh dưới dạng blob khối hoặc trang blob.

Set-AzureStorageBlobContent -Container containerName -File .\filename -Blob blobname 

Để biết chi tiết, vui lòng tham khảo http://msdn.microsoft.com/en-us/library/dn408487.aspx.

+1

Cảm ơn @Yao! Tôi nghĩ rằng bạn là người duy nhất thực sự trả lời câu hỏi! –

+1

Đây là giải pháp tốt nhất imho. Để làm cho nó hoạt động, bạn phải cung cấp thông tin xác thực, như được mô tả ở đây: http://stackoverflow.com/a/18806356/897024 – Kapep

0

Check-out bài này Uploading to Azure Storage nơi nó được giải thích làm thế nào để dễ dàng tải lên bất kỳ tập tin thông qua PowerShell để Azure Blob lưu trữ.

3

Có một công cụ mới OpenSource cung cấp bởi Microsoft:

  • Dự án Deco - crossplatform Microsoft Azure lưu trữ tài khoản Explorer.

Xin vui lòng, kiểm tra các liên kết này:

2

Một tập tin batch đơn giản sử dụng tiện ích AzCopy của Microsoft sẽ làm các trick. Bạn có thể kéo và thả tập tin của bạn vào tập tin thực thi sau để tải lên vào container lưu trữ blob của bạn:

tải lên.dơi

@ECHO OFF 

SET BLOB_URL=https://<<<account name>>>.blob.core.windows.net/<<<container name>>> 
SET BLOB_KEY=<<<your access key>>> 

:AGAIN 
IF "%~1" == "" GOTO DONE 

AzCopy /Source:"%~d1%~p1" /Dest:%BLOB_URL% /DestKey:%BLOB_KEY% /Pattern:"%~n1%~x1" /destType:blob 

SHIFT 
GOTO AGAIN 

:DONE 
PAUSE 

Lưu ý rằng các kỹ thuật nói trên chỉ tải lên một hoặc nhiều file từng cái (kể từ khi lá cờ Pattern được quy định) thay vì tải toàn bộ thư mục.

1

Bạn có thể tải tệp lên Tài khoản lưu trữ Azure Blob bằng cách sử dụng Dấu nhắc lệnh.

Cài đặt Công cụ lưu trữ Microsoft Azure.

và sau đó tải nó vào blob tài khoản của bạn sẽ CLI lệnh:

AzCopy /Source:"filepath" /Dest:bloburl /DestKey:accesskey /destType:blob 

Hy vọng nó sẽ giúp .. :)

0

Bạn có thể sử dụng công cụ Azcopy để tải lên các tập tin cần thiết để lưu trữ mặc định là xanh khối u blob có thể thay đổi mô hình theo yêu cầu của bạn

Cú pháp

AzCopy /Source : /Destination /s