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