web-dev-qa-db-fra.com

Comment puis-je télécharger un fichier dans le stockage d'objets blob Azure sans écrire mon propre programme?

J'ai créé un compte Azure Storage. J'ai un fichier .Zip de 400 mégaoctets que je veux mettre dans le stockage d'objets blob pour une utilisation ultérieure.

Comment puis-je faire cela sans écrire de code? Y a-t-il une interface pour cela?

44
sharptooth

Outils gratuits:

  1. Visual Studio 2010 - installez les outils Azure et trouvez les blobs dans l'explorateur de serveurs
  2. CloudBerry Explorer de Cloud Berry Lab pour le stockage Azure Blob
  3. ClumpsyLeaf CloudXplorer
  4. Azure Storage Explorer à partir de CodePlex (essayez la version 4 bêta)

Il existait un ancien programme appelé Azure Blob Explorer ou quelque chose qui ne fonctionne plus avec le nouveau SDK Azure.

Personnellement, j'aime bien CloudBerry Explorer.

36
Stephen Chung

Le moyen le plus simple consiste à utiliser Azure Storage PowerShell. Il a fourni de nombreuses commandes pour gérer votre conteneur de stockage/blob/table/queue. 

Dans votre cas, vous pouvez utiliser Set-AzureStorageBlobContent pour télécharger un fichier local dans le stockage Azure en tant que blob de bloc ou de page.

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

Pour plus de détails, consultez http://msdn.Microsoft.com/en-us/library/dn408487.aspx .

18
Yao

Si vous recherchez un outil pour le faire, puis-je vous suggérer de consulter notre outil Cloud Storage Studio ( http://www.cerebrata.com/Products/CloudStorageStudio ). Il s’agit d’un outil commercial permettant de gérer le stockage et le service hébergé Windows Azure. Vous pouvez également trouver une liste complète des outils de gestion Windows Azure Storage ici: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-Azure-storage-explorers.aspx

J'espère que cela t'aides.

11
Gaurav Mantri

Le StorageClient a cela intégré. Pas besoin d'écrire vraiment quelque chose:

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

Il existe un nouvel outil OpenSource fourni par Microsoft: 

  • Project Deco - Explorateur de comptes Microsoft Azure Storage multi-plateformes. 

S'il vous plaît, vérifiez ces liens: 

4

J'utilise Cyberduck pour gérer le stockage de mes blobs.

C'est gratuit et très facile à utiliser. Cela fonctionne également avec d'autres solutions de stockage en nuage.

J'ai récemment trouvé celui-ci aussi: CloudXplorer

J'espère que ça aide.

3
noir

Un simple fichier de commandes utilisant l'utilitaire AzCopy de Microsoft fera l'affaire. Vous pouvez glisser-déposer vos fichiers sur le fichier de commandes suivant à télécharger dans votre conteneur de stockage d'objets 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

Notez que la technique ci-dessus ne charge qu'un ou plusieurs fichiers individuellement (car l'indicateur Pattern est spécifié) au lieu de télécharger un répertoire entier.

2
David Yee

Vous pouvez utiliser Cloud Combine pour un téléchargement fiable et rapide de fichiers vers le stockage d'objets blob Azure.

2
ezolotko

Vous pouvez télécharger des fichiers volumineux directement sur Azure Blob Storage directement à l'aide du verbe HTTP PUT. Le plus gros fichier que j'ai essayé avec le code ci-dessous est de 4,6 Go. Vous pouvez le faire en C # comme ceci:

// 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 est généré par Azure lui-même et contient une signature d'accès partagé. Cette URL SAS indique l'emplacement de téléchargement du blob et la durée de l'accès de sécurité (accès en écriture dans votre cas). Vous pouvez générer une URL SAS comme ceci:

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

J'ai également un fil sur le sujet où vous pouvez trouver plus d'informations ici Comment télécharger des fichiers volumineux sur le blob Azure à partir d'une page Web

1
user152949

Vous pouvez télécharger des fichiers sur le blob de compte Azure Storage à l’aide de Invite de commande .

Installer Outils de stockage Microsoft Azure .

Et ensuite, chargez-le dans votre compte. La commande CLI sera la suivante:

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

J'espère que ça aide.. :)

1
Sarat Chandra

Le nouveau portail Azure comporte une option de menu "Éditeur" dans l'aperçu dans la vue Conteneur. Vous permet de télécharger un fichier directement dans le conteneur à partir de l'interface utilisateur du portail.

0
Norrec

Découvrez cet article Chargement sur Azure Storage où il est expliqué comment télécharger facilement un fichier via PowerShell vers Azure Blob Storage.

0
Jeffrey Rosselle

Vous pouvez utiliser l'outil Azcopy pour télécharger les fichiers requis sur le stockage Azure par défaut. Blob blob u peut changer de motif en fonction de vos besoins.

Syntaxe

AzCopy /Source :  /Destination /s
0
manchikanti nitesh

J'ai utilisé tous les outils mentionnés dans l'article et tous fonctionnent assez bien avec les blobs de blocs. Mon préféré cependant est BlobTransferUtility

Par défaut, BlobTransferUtility bloque uniquement les blobs. Cependant, si vous ne changez que 2 lignes de code, vous pouvez également télécharger des blobs de page. Si, comme moi, vous devez télécharger une image de machine virtuelle, celle-ci doit être un blob de page.

(pour la différence s'il vous plaît voir cet article MSDN. )

Pour télécharger des blobs de page, il suffit de changer les lignes 53 et 62 de BlobTransferHelper.cs à partir de

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

à

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

La seule autre chose à savoir à propos de cette application est de décocher HELP lorsque vous exécutez le programme pour voir l'interface utilisateur réelle.

0
paqogomez