wake-up-neo.com

Wie lade ich Dateien in den Azure-Blob-Speicher hoch, ohne ein eigenes Programm zu schreiben?

Ich habe ein Azure Storage-Konto erstellt. Ich habe eine 400 MB-ZIP-Datei, die ich zur späteren Verwendung in Blob-Speicher legen möchte.

Wie kann ich das tun, ohne Code schreiben zu müssen? Gibt es dafür eine Schnittstelle?

44
sharptooth

Kostenlose Tools:

  1. Visual Studio 2010 - Installieren Sie die Azure-Tools. Sie finden die Blobs im Server-Explorer
  2. CloudBerry Explorer des Cloud Berry Lab für Azure Blob-Speicher
  3. ClumpsyLeaf CloudXplorer
  4. Azure Storage Explorer von CodePlex (Version 4 Beta testen)

Es gab ein altes Programm namens Azure Blob Explorer oder etwas, das mit dem neuen Azure SDK nicht mehr funktioniert.

Davon mag ich CloudBerry Explorer persönlich am besten.

36
Stephen Chung

Am einfachsten verwenden Sie Azure Storage PowerShell. Es enthielt viele Befehle zum Verwalten Ihrer Speichercontainer/Blob/Tabelle/Warteschlange. 

In Ihrem erwähnten Fall können Sie Set-AzureStorageBlobContent verwenden, um eine lokale Datei als Block-Blob oder Seiten-Blob in den Azure-Speicher hochzuladen.

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

Weitere Informationen finden Sie unter http://msdn.Microsoft.com/de-de/library/dn408487.aspx .

18
Yao

Wenn Sie nach einem Werkzeug dafür suchen, schlage ich vor, dass Sie sich unser Tool Cloud Storage Studio ( http://www.cerebrata.com/Products/CloudStorageStudio ) ansehen. Es ist ein kommerzielles Tool zum Verwalten von Windows Azure Storage und gehosteten Diensten. Eine umfassende Liste der Windows Azure Storage Management-Tools finden Sie auch hier: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-Azure-storage-explorers.aspx

Hoffe das hilft.

11
Gaurav Mantri

Der StorageClient hat dies eingebaut. Keine Notwendigkeit, wirklich etwas zu schreiben:

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

Es gibt ein neues OpenSource-Tool von Microsoft: 

  • Project Deco - Plattformübergreifender Microsoft Azure Storage Account Explorer. 

Bitte überprüfen Sie diese Links: 

Ich verwende Cyberduck , um meinen Blob-Speicher zu verwalten.

Es ist kostenlos und sehr einfach zu bedienen. Es funktioniert auch mit anderen Cloud-Speicherlösungen.

Ich habe vor kurzem auch dieses gefunden: CloudXplorer

Ich hoffe es hilft.

3
noir

Eine einfache Batch-Datei mit dem Microsoft-Dienstprogramm AzCopy erledigt den Trick. Sie können Ihre Dateien per Drag & Drop in die folgende Batchdatei ziehen und in Ihren Blob-Speichercontainer hochladen:

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

Beachten Sie, dass bei der obigen Technik nur eine oder mehrere Dateien einzeln hochgeladen werden (da das Flag Pattern angegeben ist), anstatt ein gesamtes Verzeichnis hochzuladen.

2
David Yee

Sie können Cloud Combine für zuverlässigen und schnellen Dateiupload in den Azure-Blob-Speicher verwenden.

2
ezolotko

Sie können große Dateien direkt mit dem HTTP PUT-Verb direkt in den Azure Blob-Speicher hochladen. Die größte Datei, die ich mit dem folgenden Code ausprobiert habe, ist 4,6 GB. Sie können dies in C # folgendermaßen tun:

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

Die UploadUrl wird von Azure selbst generiert und enthält eine Shared Access-Signatur. Diese SAS - URL gibt an, wohin der Blob hochgeladen werden soll und wie lange der Sicherheitszugriff (in Ihrem Fall Schreibzugriff) gewährt wird. Sie können eine SAS -URL wie folgt generieren:

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

Ich habe auch einen Thread zum Thema, wo Sie weitere Informationen finden können. So laden Sie riesige Dateien von einer Webseite in den Azure-Blob hoch

1
user152949

Sie können Dateien mit der Eingabeaufforderung Command Prompt in Azure Storage Account Blob hochladen.

Installieren Sie Microsoft Azure Storage-Tools .

Und dann laden Sie es in Ihr Konto ein.

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

Ich hoffe es hilft.. :)

1
Sarat Chandra

In der Vorschau des neuen Azure-Portals befindet sich in der Containeransicht eine Menüoption "Editor". Ermöglicht das direkte Hochladen einer Datei von der Portal-Benutzeroberfläche in den Container

0
Norrec

Schauen Sie sich diesen Beitrag an Hochladen in Azure Storage Hier wird erklärt, wie Sie problemlos Dateien über PowerShell in Azure Blob Storage hochladen.

0

Sie können das Azcopy-Tool zum Hochladen der erforderlichen Dateien in den Azure-Standardspeicher verwenden

Syntax

AzCopy /Source :  /Destination /s
0

Ich habe alle im Beitrag genannten Tools verwendet, und alle funktionieren gut mit Blockblobs. Mein Favorit ist jedoch BlobTransferUtility

Standardmäßig blockiert BlobTransferUtility nur Blobs. Wenn Sie jedoch nur 2 Zeilen Code ändern, können Sie auch Seitenblobs hochladen. Wenn Sie wie ich ein Image einer virtuellen Maschine hochladen müssen, muss es ein Seiten-Blob sein.

(für den Unterschied bitte siehe diesen MSDN-Artikel. )

Um Seitenblobs hochzuladen, ändern Sie einfach die Zeilen 53 und 62 von BlobTransferHelper.cs aus

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

zu

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

Die einzige andere Sache, die Sie über diese App wissen sollten, ist das Deaktivieren von HELP, wenn Sie das Programm zum ersten Mal ausführen, um die tatsächliche Benutzeroberfläche anzuzeigen.

0
paqogomez