46

AzureStorageアカウントを作成しました。後で使用するためにblobストレージに入れたい400メガバイトの.zipファイルがあります。

コードを書かずにそれを行うにはどうすればよいですか?そのためのインターフェースはありますか?

4

15 に答える 15

37

無料ツール:

  1. Visual Studio 2010 -- Azure ツールをインストールすると、サーバー エクスプローラーで BLOB を見つけることができます
  2. Cloud Berry Lab の Azure Blob Storage 用 CloudBerry Explorer
  3. ClumpsyLeaf クラウドエクスプローラー
  4. CodePlex の Azure Storage Explorer (バージョン 4 ベータ版を試す)

Azure Blob Explorer と呼ばれる古いプログラムや、新しい Azure SDK では動作しなくなったプログラムがありました。

これらの中で、私は個人的に CloudBerry Explorer が一番気に入っています。

于 2011-07-06T02:10:10.890 に答える
18

最も簡単な方法は、Azure Storage PowerShell を使用することです。ストレージ コンテナー/BLOB/テーブル/キューを管理するための多くのコマンドが用意されています。

上記のケースでは、ローカル ファイルをブロック BLOB またはページ BLOB として Azure ストレージにアップロードできるSet-AzureStorageBlobContentを使用できます。

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

詳細については、http://msdn.microsoft.com/en-us/library/dn408487.aspxを参照してください。

于 2013-09-03T07:11:27.083 に答える
12

そのためのツールをお探しの場合は、Cloud Storage Studio ( http://www.cerebrata.com/Products/CloudStorageStudio ) というツールをご覧になることをお勧めします。これは、Windows Azure ストレージとホステッド サービスを管理するための商用ツールです。また、Windows Azure ストレージ管理ツールの包括的なリストは、http: //blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspxにあります。

お役に立てれば。

于 2011-07-05T14:35:56.197 に答える
6

StorageClient にはこれが組み込まれています。本当に何も書く必要はありません:

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");
于 2011-07-05T17:22:43.333 に答える
4

Cyber​​duckを使用してブロブ ストレージを管理しています。

無料でとても使いやすいです。他のクラウド ストレージ ソリューションとも連携します。

私も最近これを見つけました:CloudXplorer

それが役に立てば幸い。

于 2011-09-29T17:39:31.773 に答える
4

Microsoft が提供する新しい OpenSource ツールがあります。

  • Project Deco - クロスプラットフォームの Microsoft Azure ストレージ アカウント エクスプローラー。

これらのリンクを確認してください:

于 2016-03-02T10:46:59.970 に答える
2

Cloud Combineを使用して、Azure Blob Storage への信頼性の高い迅速なファイル アップロードを行うことができます。

于 2013-04-11T12:50:09.147 に答える
2

AzCopyMicrosoft のユーティリティを使用した単純なバッチ ファイルで問題は解決します。次のバッチ ファイルにファイルをドラッグ アンド ドロップして、BLOB ストレージ コンテナーにアップロードできます。

アップロード.bat

@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

上記の手法はPattern、ディレクトリ全体をアップロードするのではなく、(フラグが指定されているため) 1 つ以上のファイルを個別にアップロードするだけであることに注意してください。

于 2016-06-09T10:07:30.067 に答える
1

HTTP PUT 動詞を使用して、大きなファイルを Azure Blob Storage に直接アップロードできます。以下のコードで試した最大のファイルは 4.6 Gb です。次のように C# でこれを行うことができます。

// 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);
}

UploadUrl は Azure 自体によって生成され、共有アクセス署名が含まれています。この SAS URL は、BLOB のアップロード先と、セキュリティ アクセス (この場合は書き込みアクセス) が与えられる期間を示します。次のような SAS URL を生成できます。

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);
}

詳細については、こちらのスレッドを参照してください。 Web ページから巨大なファイルを Azure BLOB にアップロードする方法

于 2011-07-08T13:41:15.863 に答える
0

投稿に記載されているすべてのツールを使用しましたが、すべてブロック BLOB で適度に機能します。ただし、私のお気に入りはBlobTransferUtility です

デフォルトでは、BlobTransferUtility は BLOB のみをブロックします。ただし、2 行のコードを変更するだけで、ページ BLOB もアップロードできます。私のように、仮想マシン イメージをアップロードする必要がある場合は、ページ BLOB である必要があります。

(違いについては、この MSDN の記事を参照してください。 )

ページ BLOB をアップロードするには、BlobTransferHelper.cs の 53 行目と 62 行目を次のように変更します。

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

このアプリについて他に知っておくべき唯一のことは、プログラムを最初に実行して実際の UI を表示するときに HELP のチェックを外すことです。

于 2013-07-16T22:03:14.303 に答える
-1

を試すBlob Service API

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

ただし、400 MB は大きなファイルであり、単一の API 呼び出しでこのサイズのファイルを処理できるかどうかはわかりません。ファイルを分割して、カスタム コードを使用して再構築する必要がある場合があります。

于 2011-07-05T14:11:46.727 に答える