azure media services - 请求正文太大并超出了允许的最大限制

时间:2017-08-30 10:49:03

标签: azure azure-media-services

我正在使用java SDK并按照以下示例进行操作: https://docs.microsoft.com/en-us/azure/media-services/media-services-java-how-to-use 但是,使用此示例,对于大于65MB的文件,我收到以下错误: RequestBodyTooLarge请求正文太大,超出了允许的最大限制。 任何的想法? 谢谢,

1 个答案:

答案 0 :(得分:1)

当使用提供的 createBlockBlob 方法时,当前版本的Media Services Java SDK对要上载的文件大小有限制。

要解决此问题,如果您需要上传大于64MB的文件,则可以通过Azure Storage Java SDK利用文件上传。为此,请按如下所示更新示例:

1)例如,如果您使用的是Gradle构建工具,请将此行添加到依赖项部分下的 build.gradle 文件中:(package

dependencies { 
  // ...
  compile group: 'com.microsoft.azure', name: 'azure-storage', version: '4.0.0'
}

2)将以下导入指令添加到您的代码中:

import com.microsoft.azure.storage.blob.CloudBlobContainer;
import com.microsoft.azure.storage.blob.CloudBlockBlob;

3)替换 uploadFileAndCreateAsset 方法的以下代码块

// Create the Blob Writer using the Locator
uploader = mediaService.createBlobWriter(uploadLocator);

File file = new File("BigBuckBunny.mp4"); 

// The local file that will be uploaded to your Media Services account
InputStream input = new FileInputStream(file);

System.out.println("Uploading " + fileName);

// Upload the local file to the asset
uploader.createBlockBlob(fileName, input);

使用以下代码块:

try {
    CloudBlobContainer container = new CloudBlobContainer(URI.create(uploadLocator.getPath()));

    // The blob reference of the asset file
    CloudBlockBlob blob = container.getBlockBlobReference("BigBuckBunny.mp4");

    // The local file that will be uploaded to your Media Services account
    File sourceFile = new File("BigBuckBunny.mp4");

    // Upload the local file to the asset
    blob.upload(new FileInputStream(sourceFile), sourceFile.length());

} catch (Exception e) {
    // Track the exception
    e.printStackTrace();
}