Как загрузить файл в хранилище BLOB-объектов Azure без написания собственной программы?

Я создал учетную запись хранения Azure. У меня есть файл .zip размером 400 мегабайт, который я хочу поместить в хранилище BLOB-объектов для дальнейшего использования.

Как я могу это сделать без написания кода? Есть ли для этого какой-нибудь интерфейс?


person sharptooth    schedule 05.07.2011    source источник


Ответы (15)


Бесплатные инструменты:

  1. Visual Studio 2010 - установите инструменты Azure, и вы сможете найти большие двоичные объекты в обозревателе серверов.
  2. CloudBerry Explorer от Cloud Berry Lab для хранилища BLOB-объектов Azure
  3. ClumpsyLeaf CloudXplorer
  4. Обозреватель хранилища Azure от CodePlex (попробуйте бета-версию 4)

Была старая программа под названием Azure Blob Explorer или что-то, что больше не работает с новым пакетом SDK для Azure.

Из них мне лично больше всего нравится CloudBerry Explorer.

person Stephen Chung    schedule 06.07.2011
comment
+1 VS2012 с инструментами Azure также имеет эту функцию, возможно, стоит обновить свой ответ этим - person Rich O'Kelly; 26.07.2013
comment
Я только что проверил его и знаю, что прошло какое-то время, но сегодня CloudXplorer может показывать свойства больших двоичных объектов, перечислять, создавать и загружать снимки и даже просматривать содержимое многих файлов-контейнеров, таких как zip-архивы и vhds. Это замечательно для этой цели, и я не вижу этого в других инструментах. - person John; 25.02.2014
comment
Теперь у Azure есть пакет Azure CLI - загрузите его со страницы azure. microsoft.com/en-in/documentation/articles/ - очень хорошо документируем и просто работает! - person shekhar; 20.06.2016
comment
У Anymore Azure есть инструмент для таких файловых операций: Azure Storage Explorer , он имеет удобный графический интерфейс, а вход в систему осуществляется с помощью учетных данных имени пользователя и пароля Azure (ссылка на самую последнюю версию выше). - person Orhan Celik; 03.10.2018

Самый простой способ - использовать Azure Storage PowerShell. Он предоставляет множество команд для управления вашим контейнером хранения / blob / таблицей / очередью.

В упомянутом случае вы можете использовать Set-AzureStorageBlobContent, который может загружать локальный файл в хранилище Azure в виде блочного или страничного большого двоичного объекта.

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

Дополнительные сведения см. На странице http://msdn.microsoft.com/en-us/library/dn408487.aspx.

person Yao    schedule 03.09.2013
comment
Спасибо @Yao! Думаю, ты единственный, кто действительно ответил на вопрос! - person Eric Falsken; 03.12.2013
comment
Это лучшее решение imho. Чтобы он заработал, вам необходимо предоставить учетные данные, как описано здесь: stackoverflow.com/a/18806356/897024 - person kapex; 12.03.2014

Если вы ищете инструмент для этого, могу ли я предложить вам взглянуть на наш инструмент 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

Надеюсь это поможет.

person Gaurav Mantri    schedule 05.07.2011

В 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");
person dunnry    schedule 05.07.2011
comment
О, и если вы ищете красивую бесплатную программу, попробуйте ClumsyLeaf CloudXplorer. Хорошо работает. - person dunnry; 05.07.2011
comment
Комментарий на самом деле является ответом Райана :). OP, кажется, ищет интерфейс в GU ‹Interface›. - person IUnknown; 06.07.2011

Я использую Cyberduck для управления своим хранилищем BLOB-объектов.

Это бесплатно и очень просто в использовании. Он также работает с другими облачными хранилищами.

Недавно я нашел и эту: CloudXplorer

Надеюсь, это поможет.

person noir    schedule 29.09.2011
comment
Cyberduck удалил поддержку лазурного. - person Marcom; 15.07.2013
comment
Cyberduck теперь снова поддерживает лазурный! betanews.com / 2014/07/23 / - person CodeThug; 19.09.2014

Microsoft предоставляет новый инструмент OpenSource:

  • Project Deco - кроссплатформенный обозреватель учетных записей хранения Microsoft Azure.

Пожалуйста, проверьте эти ссылки:

person Ivan Ignatiev    schedule 02.03.2016

Вы можете использовать Cloud Combine для надежной и быстрой загрузки файлов в хранилище BLOB-объектов Azure.

person ezolotko    schedule 11.04.2013

Подойдет простой пакетный файл с использованием утилиты Microsoft AzCopy Хитрость. Вы можете перетащить файлы в следующий пакетный файл для загрузки в контейнер для хранения больших двоичных объектов:

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

Обратите внимание, что описанный выше метод загружает только один или несколько файлов по отдельности (поскольку указан флаг Pattern) вместо загрузки всего каталога.

person David Yee    schedule 09.06.2016

Вы можете загружать большие файлы непосредственно в хранилище BLOB-объектов Azure напрямую, используя команду HTTP PUT. Самый большой файл, который я пробовал с приведенным ниже кодом, составляет 4,6 ГБ. Сделать это на 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 и содержит подпись общего доступа, этот URL-адрес SAS указывает, куда должен быть загружен большой двоичный объект и как долго предоставляется безопасный доступ (доступ для записи в вашем случае). Вы можете сгенерировать URL-адрес SAS следующим образом:

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

У меня также есть ветка на эту тему, где вы можете найти дополнительную информацию здесь Как загружать огромные файлы в большой двоичный объект Azure с веб-страницы

person Community    schedule 08.07.2011

Вы можете загружать файлы в большой двоичный объект учетной записи хранения Azure с помощью командной строки.

Установите инструменты хранилища Microsoft Azure.

А затем загрузите его в свою учетную запись blob будет командой CLI:

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

Надеюсь, это поможет.. :)

person Sarat Chandra    schedule 23.03.2017

На новом портале Azure есть пункт меню «Редактор» в режиме предварительного просмотра, когда он находится в представлении контейнера. Позволяет загружать файл прямо в контейнер из пользовательского интерфейса портала.

person Norrec    schedule 16.05.2018

Я использовал все инструменты, упомянутые в сообщении, и все они неплохо работают с блочными каплями. Однако мне больше всего нравится BlobTransferUtility.

По умолчанию BlobTransferUtility блокирует только большие двоичные объекты. Однако изменив всего 2 строки кода, вы также сможете загружать страничные капли. Если вам, как и мне, нужно загрузить образ виртуальной машины, это должен быть страничный BLOB-объект.

(информацию о разнице см. в этой статье MSDN.)

Чтобы загрузить страничные BLOB-объекты, просто измените строки 53 и 62 файла BlobTransferHelper.cs с

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

to

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

Единственное, что нужно знать об этом приложении, - это снять флажок HELP при первом запуске программы, чтобы увидеть фактический пользовательский интерфейс.

person crthompson    schedule 16.07.2013

Прочтите этот пост Загрузка в хранилище Azure, где объясняется, как легко загрузить любой файл. через PowerShell в хранилище BLOB-объектов Azure.

person Jeffrey Rosselle    schedule 01.04.2015

Вы можете использовать инструмент Azcopy для загрузки необходимых файлов в хранилище Azure по умолчанию - это блочный двоичный объект, и вы можете изменить шаблон в соответствии с вашими требованиями.

Синтаксис

AzCopy /Source :  /Destination /s
person manchikanti nitesh    schedule 20.04.2017

Попробуйте Blob Service API

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

Однако 400 МБ - это большой файл, и я не уверен, что один вызов API будет иметь дело с чем-то такого размера, вам может потребоваться разделить его и восстановить с помощью специального кода.

person ChrisBint    schedule 05.07.2011