programing

내 프로그램을 작성하지 않고 Azure blob 저장소에 파일을 업로드하려면 어떻게 해야 합니까?

minimums 2023. 5. 28. 20:31
반응형

내 프로그램을 작성하지 않고 Azure blob 저장소에 파일을 업로드하려면 어떻게 해야 합니까?

Azure Storage 계정을 만들었습니다.나중에 사용하기 위해 BLOB 저장소에 넣고 싶은 400MB의 .zip 파일이 있습니다.

코드를 작성하지 않고 어떻게 할 수 있습니까?그것을 위한 인터페이스가 있습니까?

무료 도구:

  1. Visual Studio 2010 - Azure 도구를 설치하면 서버 탐색기에서 블롭을 찾을 수 있습니다.
  2. Cloud Berry Lab의 Azure Blob 스토리지용 CloudBerry Explorer
  3. 뭉친 나뭇잎 구름 탐색기
  4. CodePlex의 Azure Storage Explorer(버전 4 베타 사용)

Azure Blob Explorer라는 오래된 프로그램이나 새로운 Azure SDK에서 더 이상 작동하지 않는 프로그램이 있었습니다.

이 중에서 저는 개인적으로 CloudBerry Explorer를 가장 좋아합니다.

가장 쉬운 방법은 Azure Storage PowerShell을 사용하는 것입니다.스토리지 컨테이너/블롭/테이블/큐를 관리하기 위한 많은 명령을 제공했습니다.

앞서 언급한 경우 Set-AzureStorageBlobContent를 사용하여 로컬 파일을 zure스토리지에 블록 블로그 또는 페이지 블로그로 업로드할 수 있습니다.

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

자세한 내용은 http://msdn.microsoft.com/en-us/library/dn408487.aspx 을 참조하십시오.

이를 위한 툴을 찾고 있다면 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

이게 도움이 되길 바랍니다.

스토리지 클라이언트에는 이 기능이 내장되어 있습니다.아무 것도 쓸 필요가 없습니다.

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

Cyberduck을 사용하여 BLOB 저장소를 관리합니다.

그것은 무료이고 사용하기 매우 쉽습니다.다른 클라우드 스토리지 솔루션과도 작동합니다.

최근에 이것도 발견했습니다. CloudXplor

도움이 되길 바랍니다.

Microsoft에서 제공하는 새로운 OpenSource 도구가 있습니다.

  • Project Deco - 크로스 플랫폼 Microsoft Azure 스토리지 계정 탐색기

다음 링크를 확인하십시오.

클라우드 콤바인을 사용하여 Azure blob 저장소에 신뢰할 수 있고 빠른 파일 업로드를 할 수 있습니다.

Microsoft 유틸리티를 사용하는 간단한 배치 파일이 유용합니다.다음 배치 파일에 파일을 드래그 앤 드롭하여 BLOB 저장소 컨테이너에 업로드할 수 있습니다.

업로드.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전체 디렉터리를 업로드하는 대신 flag가 지정됨)

명령 프롬프트를 사용하여 Azure 스토리지 계정 BLOB에 파일을 업로드할 수 있습니다.

Microsoft Azure 스토리지 도구를 설치합니다.

그런 다음 Upload it to your account blob(계정에 업로드)에서 CLI 명령을 실행합니다.

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

도움이 되길 바랍니다.:)

HTTP PUT 동사를 사용하여 Azure Blob 저장소에 직접 큰 파일을 업로드할 수 있으며, 아래 코드로 시도한 가장 큰 파일은 4,6Gb입니다.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 자체에서 생성되며 Shared Access Signature를 포함합니다. 이 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);
}

웹 페이지에서 Azure BLOB에 대용량 파일을 업로드하는 방법은 여기에서 더 많은 정보를 찾을 수 있는 주제에 대한 스레드도 있습니다.

새 Azure Portal에는 컨테이너 보기에서 '편집기' 메뉴 옵션이 미리 표시됩니다.포털 UI에서 컨테이너에 직접 파일을 업로드할 수 있습니다.

저는 게시물에 언급된 모든 도구를 사용했고, 모든 것이 블록 블롭으로 적당히 잘 작동합니다.하지만 제가 가장 좋아하는 것은 BlobTransfer 유틸리티입니다.

기본적으로 BlobTransferUtility는 Blob만 차단합니다.하지만 코드 2줄만 바꾸면 페이지 블롭도 업로드 할 수 있습니다.저처럼 가상 시스템 이미지를 업로드해야 하는 경우에는 페이지 블롭이어야 합니다.

(자세한 내용은 이 MSDN 문서를 참조하십시오.)

페이지 블롭을 업로드하려면 블롭트랜스퍼의 53행과 62행을 변경하기만 하면 됩니다.Helper.cs 에서

new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob

로.

new Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob

이 앱에 대해 알아야 할 유일한 것은 프로그램을 처음 실행할 때 HELP를 선택 해제하여 실제 UI를 보는 것입니다.

PowerShell을 통해 모든 파일을 Azure Blob Storage에 쉽게 업로드하는 방법을 설명하는 이 게시물을 확인하십시오.

Azcopy 도구를 사용하여 필요한 파일을 zero 기본 저장소에 업로드할 수 있습니다. block blob은 사용자의 요구 사항에 따라 패턴을 변경할 수 있습니다.

구문

AzCopy /Source :  /Destination /s

사용해 보십시오.Blob Service API

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

하지만 400mb는 파일이고 API 호출 하나로 이 크기의 것을 처리할 수 있을지 모르겠습니다. 사용자 지정 코드를 사용하여 분할하고 재구성해야 할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/6584036/how-do-i-upload-some-file-into-azure-blob-storage-without-writing-my-own-program

반응형