대용량 파일로 인해 Azure File Storage에 업로드가 실패 함

브래드 패튼

4MB보다 큰 파일을 업로드하려고 RequestBodyTooLarge하면 다음 메시지와 함께 예외가 발생합니다.

The request body is too large and exceeds the maximum permissible limit.

이 제한은 REST API 참조 ( https://docs.microsoft.com/en-us/rest/api/storageservices/put-range )에 문서화되어 있지만 SDK Upload * 메서드 ( https : // docs.microsoft.com/en-us/dotnet/api/azure.storage.files.shares.sharefileclient.uploadasync?view=azure-dotnet ). 이 문제를 해결하는 예도 없습니다.

그렇다면 대용량 파일을 업로드하는 방법은 무엇입니까?

브래드 패튼

많은 시행 착오 끝에 파일 업로드 제한을 해결하기 위해 다음 방법을 만들 수있었습니다. 아래 코드에는 업로드 할 폴더 _dirClient로 이미 초기화 된 ShareDirectoryClient세트가 있습니다.

수신 스트림이 4MB보다 크면 코드는 4MB 청크를 읽고 완료 될 때까지 업로드합니다. HttpRange바이트가 이미 푸른 업로드 파일에 추가됩니다 곳입니다. 인덱스는 새 바이트가 추가되도록 Azure 파일의 끝을 가리 키도록 증분되어야합니다.

public async Task WriteFileAsync(string filename, Stream stream) {

    //  Azure allows for 4MB max uploads  (4 x 1024 x 1024 = 4194304)
    const int uploadLimit = 4194304;

    stream.Seek(0, SeekOrigin.Begin);   // ensure stream is at the beginning
    var fileClient = await _dirClient.CreateFileAsync(filename, stream.Length);

    // If stream is below the limit upload directly
    if (stream.Length <= uploadLimit) {
        await fileClient.Value.UploadRangeAsync(new HttpRange(0, stream.Length), stream);
        return;
    }

    int bytesRead;
    long index = 0;
    byte[] buffer = new byte[uploadLimit];

    // Stream is larger than the limit so we need to upload in chunks
    while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) {
        // Create a memory stream for the buffer to upload
        using MemoryStream ms = new MemoryStream(buffer, 0, bytesRead);
        await fileClient.Value.UploadRangeAsync(new HttpRange(index, ms.Length), ms);
        index += ms.Length; // increment the index to the account for bytes already written
    }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AWS EC2 인스턴스의 nodejs 앱에 대해 상태 413과 함께 대용량 파일 업로드가 실패하는 이유는 무엇입니까?

분류에서Dev

CORS로 인해 createPresignedPost 또는 getPresignedUrl을 사용하여 클라이언트에서 S3로 formData 파일 업로드가 실패 함

분류에서Dev

Azure File Storage에 파일 업로드

분류에서Dev

giflib 업데이트로 인해 소스에서 Gnash 컴파일이 실패 함-대안?

분류에서Dev

Chrome 대 Chromedriver 버전 불일치로 인해 GitHub 작업에서 Angular e2e 테스트가 실패 함

분류에서Dev

BlobContainerClient를 사용하여 Blob Storage를 사용하여 Azure에 대용량 파일 업로드

분류에서Dev

Angular 앱에서 직접 Azure Blob Storage에 대용량 파일을 업로드하는 방법

분류에서Dev

': react-native-image-picker : testDebugUnitTest'작업에 대한 실행 실패로 인해 Azure 연속 통합 빌드 파이프 라인을 만들 수 없습니다.

분류에서Dev

file_get_contents가 빈 예외로 인해 실패 함

분류에서Dev

testhost.dll로 인해 Azure-DevOps 파이프 라인이 실패 함

분류에서Dev

.NET Core에서 Azure Cosmos DB로 JSON 파일 대량 업로드 / 가져 오기

분류에서Dev

정의되지 않은 변수에 대한 postcss 규칙으로 인해 scss 파일을 컴파일하는 NodeJs 스크립트가 실패 함

분류에서Dev

libwep로 인해 CoreData 모델 컴파일러가 실패 함

분류에서Dev

Azure Storage Blob에서 안전한 방식으로 Angular 클라이언트로 대용량 파일 다운로드

분류에서Dev

dotnet 빌드에서 Azure Pipeline 실패, 최신 .net 코어 버전으로 업그레이드해야 함

분류에서Dev

Azure의 dotnetcore 앱에 큰 파일 업로드 실패 (404)

분류에서Dev

Azure Blob Storage에서 Azure 함수에 피클 파일로드

분류에서Dev

Azure DevOps-Blob Storage에 파일을 복사하는 동안 AzureBlob 파일 복사 작업이 실패 함

분류에서Dev

Nuget packager 빌드 에이전트를 사용하는 VSO가 잘못된 속성으로 인해 실패 함

분류에서Dev

PF_MAX> 44로 인해 커널 컴파일이 실패 함

분류에서Dev

UserManager.AddToRole이 Facebook 로그인에 대해 자동으로 실패 함

분류에서Dev

.bashrc로 인해 git push가 실패 함

분류에서Dev

Espresso에서 Lollipop의 기기를 사용하여 테스트가 실패 함 (실패 : 'java.lang.IllegalAccessError'로 인해 계측 실행 실패)

분류에서Dev

Azure Storage : BlobClient는 대용량 파일을 업로드하는 동안 자체 재설정을 계속합니다.

분류에서Dev

PostgreSQL ActionView :: Template :: Error로 인해 Heroku에서 배포가 실패 함

분류에서Dev

SSH를 통한 파일에 추가가 잘못된 인수로 실패 함

분류에서Dev

Azure Blob Storage에 파일 업로드

분류에서Dev

SSL 종료로드 밸런서에서만 ajax 파일 업로드가 실패 함

분류에서Dev

PC에서 Android 장치로 파일 다운로드-대용량 파일에 대해 OutputStream 쓰기 ()가 멈춤

Related 관련 기사

  1. 1

    AWS EC2 인스턴스의 nodejs 앱에 대해 상태 413과 함께 대용량 파일 업로드가 실패하는 이유는 무엇입니까?

  2. 2

    CORS로 인해 createPresignedPost 또는 getPresignedUrl을 사용하여 클라이언트에서 S3로 formData 파일 업로드가 실패 함

  3. 3

    Azure File Storage에 파일 업로드

  4. 4

    giflib 업데이트로 인해 소스에서 Gnash 컴파일이 실패 함-대안?

  5. 5

    Chrome 대 Chromedriver 버전 불일치로 인해 GitHub 작업에서 Angular e2e 테스트가 실패 함

  6. 6

    BlobContainerClient를 사용하여 Blob Storage를 사용하여 Azure에 대용량 파일 업로드

  7. 7

    Angular 앱에서 직접 Azure Blob Storage에 대용량 파일을 업로드하는 방법

  8. 8

    ': react-native-image-picker : testDebugUnitTest'작업에 대한 실행 실패로 인해 Azure 연속 통합 빌드 파이프 라인을 만들 수 없습니다.

  9. 9

    file_get_contents가 빈 예외로 인해 실패 함

  10. 10

    testhost.dll로 인해 Azure-DevOps 파이프 라인이 실패 함

  11. 11

    .NET Core에서 Azure Cosmos DB로 JSON 파일 대량 업로드 / 가져 오기

  12. 12

    정의되지 않은 변수에 대한 postcss 규칙으로 인해 scss 파일을 컴파일하는 NodeJs 스크립트가 실패 함

  13. 13

    libwep로 인해 CoreData 모델 컴파일러가 실패 함

  14. 14

    Azure Storage Blob에서 안전한 방식으로 Angular 클라이언트로 대용량 파일 다운로드

  15. 15

    dotnet 빌드에서 Azure Pipeline 실패, 최신 .net 코어 버전으로 업그레이드해야 함

  16. 16

    Azure의 dotnetcore 앱에 큰 파일 업로드 실패 (404)

  17. 17

    Azure Blob Storage에서 Azure 함수에 피클 파일로드

  18. 18

    Azure DevOps-Blob Storage에 파일을 복사하는 동안 AzureBlob 파일 복사 작업이 실패 함

  19. 19

    Nuget packager 빌드 에이전트를 사용하는 VSO가 잘못된 속성으로 인해 실패 함

  20. 20

    PF_MAX> 44로 인해 커널 컴파일이 실패 함

  21. 21

    UserManager.AddToRole이 Facebook 로그인에 대해 자동으로 실패 함

  22. 22

    .bashrc로 인해 git push가 실패 함

  23. 23

    Espresso에서 Lollipop의 기기를 사용하여 테스트가 실패 함 (실패 : 'java.lang.IllegalAccessError'로 인해 계측 실행 실패)

  24. 24

    Azure Storage : BlobClient는 대용량 파일을 업로드하는 동안 자체 재설정을 계속합니다.

  25. 25

    PostgreSQL ActionView :: Template :: Error로 인해 Heroku에서 배포가 실패 함

  26. 26

    SSH를 통한 파일에 추가가 잘못된 인수로 실패 함

  27. 27

    Azure Blob Storage에 파일 업로드

  28. 28

    SSL 종료로드 밸런서에서만 ajax 파일 업로드가 실패 함

  29. 29

    PC에서 Android 장치로 파일 다운로드-대용량 파일에 대해 OutputStream 쓰기 ()가 멈춤

뜨겁다태그

보관