tools servidor microsoft manager descargar archivos windows azure azure-storage azure-storage-blobs

windows - servidor - portal azure



¿Cómo puedo cargar algún archivo en Azure blob storage sin escribir mi propio programa? (15)

Consulte esta publicación Subida a Azure Storage, donde se explica cómo cargar fácilmente cualquier archivo a través de PowerShell a Azure Blob Storage.

Creé una cuenta de Azure Storage. Tengo un archivo .zip de 400 megabytes que quiero poner en almacenamiento de blobs para su uso posterior.

¿Cómo puedo hacer eso sin escribir código? ¿Hay alguna interfaz para eso?


El nuevo Azure Portal tiene una opción de menú ''Editor'' en la vista previa cuando está en la vista de contenedor. Le permite subir un archivo directamente al contenedor desde la interfaz de usuario del Portal



He usado todas las herramientas mencionadas en la publicación, y todo funciona moderadamente bien con bloqueos. Sin embargo, mi favorito es BlobTransferUtility

Por defecto, BlobTransferUtility solo bloquea blobs. Sin embargo, cambiar solo 2 líneas de código y también puede cargar blobs de página. Si usted, como yo, necesita cargar una imagen de máquina virtual, debe ser un blob de página.

(Para la diferencia, consulte este artículo de MSDN ) .

Para cargar blobs de página simplemente cambie las líneas 53 y 62 de BlobTransferHelper.cs desde

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

a

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

La única otra cosa que debes saber sobre esta aplicación es desmarcar HELP cuando ejecutas el programa por primera vez para ver la UI real.


Herramientas gratuitas:

  1. Visual Studio 2010: instala herramientas de Azure y puedes encontrar los blobs en Server Explorer
  2. CloudBerry Explorer de Cloud Berry Lab para Azure Blob Storage
  3. ClumpsyLeaf CloudXplorer
  4. Azure Storage Explorer de CodePlex (prueba la versión 4 beta)

Había un programa antiguo llamado Azure Blob Explorer o algo que ya no funciona con el nuevo SDK de Azure.

Fuera de estos, personalmente me gusta CloudBerry Explorer lo mejor.


La forma más fácil es usar Azure Storage PowerShell. Proporcionó muchos comandos para administrar su contenedor de almacenamiento / blob / table / queue.

Para su caso mencionado, podría usar Set-AzureStorageBlobContent, que podría cargar un archivo local en almacenamiento azul como blob de bloque o blob de página.

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

Para más detalles, consulte http://msdn.microsoft.com/en-us/library/dn408487.aspx .


Pruebe la Blob Service API

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

Sin embargo, 400mb es un archivo grande y no estoy seguro de que una sola llamada API trate con algo de este tamaño, es posible que deba dividirlo y reconstruirlo con un código personalizado.


Puede cargar archivos en Blob de cuenta de almacenamiento de Azure usando el símbolo del sistema .

Instale las herramientas de almacenamiento de Microsoft Azure .

Y luego subirlo a su cuenta blob comando CLI:

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

Espero eso ayude.. :)


Puede cargar archivos grandes directamente en Azure Blob Storage directamente usando el verbo HTTP PUT, el archivo más grande que he probado con el siguiente código es 4,6 Gb. Puedes hacer esto en C # así:

// 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 es generado por Azure y contiene una Firma de acceso compartido, esta URL de SAS indica dónde se cargará el blob y el tiempo de acceso de seguridad (acceso de escritura en su caso). Puede generar una URL SAS como esta:

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

También tengo un hilo sobre el tema donde puedes encontrar más información aquí Cómo subir archivos enormes al blob de Azure desde una página web


Puede usar Cloud Combine para cargar archivos de manera confiable y rápida en Azure blob storage.


Puede usar la herramienta Azcopy para cargar los archivos necesarios en el almacenamiento predeterminado de Azure. Blob Blob puede cambiar el patrón de acuerdo con su requerimiento

Sintaxis

AzCopy /Source : /Destination /s


Si está buscando una herramienta para hacerlo, le sugiero que eche un vistazo a nuestra herramienta Cloud Storage Studio ( http://www.cerebrata.com/Products/CloudStorageStudio ). Es una herramienta comercial para administrar Windows Azure Storage y Hosted Service. También puede encontrar una lista completa de herramientas de administración de almacenamiento de Windows Azure aquí: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/17/windows-azure-storage-explorers.aspx

Espero que esto ayude.


StorageClient tiene esto incorporado. No es necesario escribir realmente nada:

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


Un simple archivo por lotes utilizando la utilidad AzCopy de Microsoft hará el truco. Puede arrastrar y soltar sus archivos en el siguiente archivo por lotes para cargarlos en su contenedor de almacenamiento 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

Tenga en cuenta que la técnica anterior solo carga uno o más archivos individualmente (ya que se especifica el indicador de Pattern ) en lugar de cargar un directorio completo.


Uso Cyberduck para administrar mi almacenamiento blob.

Es gratis y muy fácil de usar. También funciona con otras soluciones de almacenamiento en la nube.

Recientemente encontré este: CloudXplorer

Espero eso ayude.