gpt4 book ai didi

java - 将 Base64 编码的视频发布到服务器,OutOfMemoryError

转载 作者:行者123 更新时间:2023-12-01 12:09:48 26 4
gpt4 key购买 nike

我需要使用 Base64 编码将较大的视频文件(和其他文件)发送到服务器。

我遇到内存不足异常,因为我想将文件存储在内存中(在 byte[] 中),然后将其编码为 stringBase64.encodeToString 。但是如何对文件进行编码并以空中方式发送出去和/或使用更少的内存呢?或者我怎样才能做得更好?

对于我现在使用的请求MultipartEntityBuilder构建之后,我使用 post 方法将其发送到服务器,并且使用该文件我还需要发送其他数据。因此,我需要在一个请求中发送这两个请求,并且服务器只接受采用 Base64 编码的文件。

或者

因为我使用 Drupal 的 REST 模块从帖子创建内容,所以如果我可以使用正常表单发送正常帖子,这对我来说是另一个解决方案。 (就像浏览器一样)问题是,我找不到,只有一种解决方案。当您调用 <endpoint>/file url 并传递四件事,这些是:

array("filesize" => 1029, // file size
"filename" => "something.mp4", //file name
"uid" => 1, // user id, who upload the file
"file" => "base64 encoded file string")

在此请求之后,我得到一个 fid,它是上传文件的 id。当我创建节点时,我需要将其与真实内容一起发送。如果我可以像浏览器在表单发送时那样以正常的 post 模式(不编码)发送文件,那就更好了。

最佳答案

I need to send larger video files (and other files) to server with base64 encode.

您应该考虑购买一台更好的服务器,支持二进制上传。

I get out of memory exception, because I want to store the file in the memory (in byte[]) then encode it to string with Base64.encodeToString.

这不适用于任何重要的视频。您没有堆空间用于此操作。

But how can I encode the file and send it out on-the-air and/or using less memory? Or how can I do this better?

您可以实现一个到 Base64 的流式转换器(从文件中读取字节并将字节写入到 Base64 编码的文件中,在该文件中您一次仅在 RAM 中处理少量字节)。然后,上传该文件以及其余表单数据。

关于java - 将 Base64 编码的视频发布到服务器,OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com