none
media services怎么用java分块上传大文件 RRS feed

  • 问题

  • 运行这里https://docs.azure.cn/zh-cn/media-services/previous/media-services-java-how-to-use的代码,无法上传大文件,想上传大于100M小于1G的文件,该怎么办?
    2018年7月20日 7:29

答案

  • Hi zhanyucao,

    上传大文件需要使用分片上传的方式:

    // The name of the file as it will exist in your Media Services account.
    String fileName = "xxxxxxxx";  
    // The local file that will be uploaded to your Media Services account.
    InputStream input = new FileInputStream(new File("D:/Test" + fileName));
    String blobName = fileName;
    // Upload the local file to the asset.
    uploader.createBlockBlob(fileName, null);        
    String blockId;
    byte[] buffer = new byte[1024000];
    BlockList blockList = new BlockList();
    int bytesRead;        
    ByteArrayInputStream byteArrayInputStream;
    while ((bytesRead = input.read(buffer)) > 0) 
    {
            blockId = UUID.randomUUID().toString();
            byteArrayInputStream = new ByteArrayInputStream(buffer, 0, bytesRead);
            uploader.createBlobBlock(blobName, blockId, byteArrayInputStream);
            blockList.addUncommittedEntry(blockId);
    }
    uploader.commitBlobBlocks(blobName, blockList);

    参考文档:通过 Java 上传大文件到媒体服务账号报错


    MSDN 社区技术支持
    如果该回复解决了您的问题,请及时点击“标记为答案”选项,如未解决请选择“取消标记为答案”,这会有利于其他人员来阅读您的帖子。如果您对MSDN 技术支持有任何的建议或意见,请随时联系 MSDNFSF@microsoft.com

    • 已标记为答案 zhanyucao 2018年7月20日 10:16
    2018年7月20日 8:29
    版主