然而,库似乎不能为AppendBlob做同样的事情,那么如何手动完成这个分块呢?基本上,我认为这需要将InputStream分成更小的批...
使用Azure Java SDK 12.14.1
受以下SO中的答案启发(与在C#中这样做有关):c-sharp-azure-appendblob-appendblock-adding-a-file-larger-the-4MB-limit
...我在Java中是这样做的:
AppendBlobRequestConditions appendBlobRequestConditions = new AppendBlobRequestConditions()
.setLeaseId("myLeaseId");
try (InputStream input = new BufferedInputStream(
new FileInputStream(file));) {
byte[] buf = new byte[AppendBlobClient.MAX_APPEND_BLOCK_BYTES];
int bytesRead;
while ((bytesRead = input.read(buf)) > 0) {
if (bytesRead != buf.length) {
byte[] smallerData = new byte[bytesRead];
smallerData = Arrays.copyOf(buf, bytesRead);
buf = smallerData;
}
try (InputStream byteStream = new ByteArrayInputStream(buf);) {
appendBlobClient
.appendBlockWithResponse(byteStream, bytesRead,
null, appendBlobRequestConditions, null,
null);
}
}
}
当然,在此之前您需要做很多事情,比如确保AppendBlob存在,如果不存在,则在尝试追加任何数据之前创建它。
所以我想知道的是上传大文件的最好方法,它似乎必须分块完成,对于追加blobs,可能是4MB,对于块blobs,可能是100MB,但是文档不清楚,也没有示例。
问题内容: 我得到这个错误说 上传大约30MB的视频时, 这是设置代码 不确定如何设置maxFieldsSize属性,需要一些帮助!!! 问题答案: Express使用连接中间件,您可以使用以下命令指定文件上传大小 连接限制中间件
我犯了个错误 当上传一段大约30MB的视频时, 这里是设置代码 我不知道如何设置maxFieldsSize属性,需要帮助!!!
问题内容: 我有一个上传表单,正在检查文件大小和文件类型,以将上传的文件限制为2 MB,以及.pdf,.jpg,.gif或.png文件类型。我的目标是在用户违反这些规则之一的情况下向他们显示警报消息。 有四种方案: 正确的尺寸/正确的类型(工作中) 正确的尺寸/不正确的类型(工作中) 尺寸/类型 不 正确( 不起作用 ) 不正确的大小/ 不正确的 类型( 不起作用 ) 使用我当前的代码,即使文件类
问题内容: 我增加了Macbook Pro的最大文件限制,以便Elasticsearch可以处理更多文件,但是不起作用。 我运行命令’ulimit -a’,它说“打开文件”是100,000。我可以运行一个简单的shell脚本,如下所示: 而且我能够创建很多文件(在杀死脚本之前已超过60,000)。 但是,使用Java代码在“ / tmp”目录的空子目录中创建RandomAccessFiles,在得
问题内容: 在客户端,用户使用RecordRTC录制短视频。当用户按下上载时,我将使用来获取视频的数据,并将其上载到我的服务器(使用Rails和回形针处理文件上载)。 首先,我想将字段值更改为数据。事实证明,为了确保浏览器的安全性,我无法使用javascript对其进行更改。 然后,我尝试使用AJAX: 但是,它不起作用。 在档案上,我将得到以下内容,无法处理: 如果我正常使用提交,则参数将如下所