web-dev-qa-db-ja.com

独自のプログラムを作成せずに、Azure BLOBストレージにファイルをアップロードするにはどうすればよいですか?

Azureストレージアカウントを作成しました。 400 MBの.Zipファイルがあり、後で使用するためにBLOBストレージに入れたい。

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

46
sharptooth

無料ツール:

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

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

これらのうち、私は個人的にCloudBerry Explorerが一番好きです。

37
Stephen Chung

最も簡単な方法は、Azure Storage PowerShellを使用することです。ストレージコンテナ/ blob/table/queueを管理するための多くのコマンドを提供しました。

前述の場合、Set-AzureStorageBlobContentを使用して、ローカルファイルをブロックblobまたはページblobとしてAzureストレージにアップロードできます。

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

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

18
Yao

そのためのツールをお探しの場合は、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

お役に立てれば。

12
Gaurav Mantri

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");
6
dunnry

Cyber​​duck を使用して、BLOBストレージを管理します。

無料で非常に使いやすいです。他のクラウドストレージソリューションでも機能します。

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

それが役に立てば幸い。

4
noir

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

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

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

Microsoftの AzCopy ユーティリティを使用した単純なバッチファイルがこのトリックを実行します。次のバッチファイルにファイルをドラッグアンドドロップして、blobストレージコンテナーにアップロードできます。

upload.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

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

2
David Yee

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

2
ezolotko

HTTP PUT verbを使用して、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ブロブに巨大なファイルをアップロードする方法

1
user152949

コマンドプロンプトを使用して、AzureストレージアカウントBlobにファイルをアップロードできます。

インストールMicrosoft Azureストレージツール

そして、それをアカウントblobにアップロードすると、CLIコマンドが実行されます。

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

それが役に立てば幸い.. :)

1
Sarat Chandra

新しいAzureポータルには、コンテナービューのプレビューで[エディター]メニューオプションがあります。ポータルUIからコンテナにファイルを直接アップロードできます

1
Norrec

この投稿を確認してください Azure Storageへのアップロード PowerShell経由でAzure Blob Storageにファイルを簡単にアップロードする方法が説明されています。

0

Azcopyツールを使用して、必要なファイルをAzureのデフォルトストレージにアップロードできます。ブロックblobは要件に応じてパターンを変更できます

構文

AzCopy /Source :  /Destination /s
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を見るためにプログラムを最初に実行するときにヘルプのチェックを外すことです。

0
paqogomez