标签: large-file-upload

在rails应用程序中处理大型文件上传的最佳方法是什么?

我有兴趣了解在Rails应用程序中处理大型文件上传的不同方法,2-5Gb文件.

据我所知,为了传输这种大小的文件,需要将其分解为更小的部分,我已经做了一些研究,这是我到目前为止所做的.

可以像FTP一样恢复所有这些方法,我不想使用FTP的原因是,如果可能的话,我想保留在网络应用程序中吗?我已经使用了carrierwave和paperclip,但我正在寻找能够恢复的东西,因为上传5Gb文件可能需要一些时间!

在我列出的这些方法中,我想说明哪些方法运作良好,如果还有其他方法可能会丢失?如果可能的话,没有插件,宁愿不使用Java Applets或Flash.另一个问题是这些解决方案在上传时将文件保存在内存中,这也是我希望尽可能避免的约束.

bittorrent ruby-on-rails http large-file-upload

39
推荐指数
2
解决办法
2万
查看次数

如何将大型(> 25MB)文件上载到Web服务?

我有一个Web服务,它接受一个byte []并保存它.

这适用于"小"文件,但是一旦我达到一定的大小,Web服务就会失败并返回"请求失败,HTTP状态为404:未找到".

从我所看到的,这似乎是一个IIS设置,限制了可以发布的文件的大小(以防止拒绝服务攻击).我试图增加那个设置,但是我无法确定设置的位置和设置方式.我正在使用IIS7,而web服务是在.net(asmx)中完成的.

在Web服务的web.config中,我添加了以下内容(这似乎增加了可以接受的文件大小,但不是一直到这个设置大小)

  <system.web>
     <httpRuntime executionTimeout="999999" maxRequestLength="2097151" />
     ...
  </system.web>
Run Code Online (Sandbox Code Playgroud)

有关增加Web服务的文件大小的位置(以及如何)的任何建议将非常感激.

.net iis-7 web-services large-file-upload

29
推荐指数
4
解决办法
5万
查看次数

在 ASP.NET Core 3.1 中上传和下载大文件?

我正在使用干净的架构开发 ASP.NET Core 3.1 API 项目,并且我有以下类库(层):

  • 基础设施(安全的东西和上传助手等......)
  • 持久化(DA层)
  • 领域(领域模型)
  • 应用程序(用例 - 业务逻辑)
  • API(API项目作为我的启动项目)

我希望能够将大文件上传到服务器(例如 2Gb 的文件大小甚至更大)并在此之后下载它们,并且希望在将来不会出现内存溢出和所有问题的情况下进行下载

任何帮助,将不胜感激。

c# file-io large-file-upload asp.net-core asp.net-core-webapi

28
推荐指数
1
解决办法
3万
查看次数

将大文件错误上传到wildfly

我尝试上传大文件(400mb +)到wildfly 8.1,我得到一个IOException但我在使用jboss 7服务器时没有遇到任何相同条件的异常:

例外:

Blocking request failed HttpServerExchange{ POST /ehub/contentstore/categories/maincategory/file/create}: java.lang.RuntimeException: java.io.IOException: Broken pipe
    at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:527)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:287)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: java.io.IOException: Broken pipe
    at sun.nio.ch.FileDispatcherImpl.write0(Native Method) [rt.jar:1.7.0_51]
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [rt.jar:1.7.0_51]
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) [rt.jar:1.7.0_51]
    at sun.nio.ch.IOUtil.write(IOUtil.java:51) [rt.jar:1.7.0_51]
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:487) [rt.jar:1.7.0_51]
    at org.xnio.nio.NioSocketConduit.write(NioSocketConduit.java:150) [xnio-nio-3.2.2.Final.jar:3.2.2.Final]
    at io.undertow.server.protocol.http.HttpResponseConduit.processWrite(HttpResponseConduit.java:212)
    at io.undertow.server.protocol.http.HttpResponseConduit.flush(HttpResponseConduit.java:629)
    at io.undertow.conduits.FinishableStreamSinkConduit.flush(FinishableStreamSinkConduit.java:83)
    at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162) [xnio-api-3.2.2.Final.jar:3.2.2.Final]
    at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:100)
    at org.xnio.channels.Channels.flushBlocking(Channels.java:63) [xnio-api-3.2.2.Final.jar:3.2.2.Final]
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:625)
    at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:451) …
Run Code Online (Sandbox Code Playgroud)

rest file-upload large-file-upload wildfly

27
推荐指数
2
解决办法
2万
查看次数

如何通过WCF处理大文件上传?

我正在考虑使用WCF进行一个项目,该项目需要人们能够将大文件(64MB-1GB)上传到我的服务器.我如何使用WCF处理此问题,可能还能恢复上传.

为了处理更大的客户群,我想通过WCF测试JSON.这将如何影响文件上传?可以从JSON完成,还是需要切换到上传部分的REST?

c# wcf json large-file-upload

16
推荐指数
1
解决办法
1万
查看次数

python请求使用其他数据上传大文件

我一直在寻找使用其他数据上传大文件的方法,但似乎没有任何解决方案.要上传文件,我一直在使用这个代码,并且它与小文件一起正常工作:

with open("my_file.csv", "rb") as f:
    files = {"documents": ("my_file.csv", f, "application/octet-stream")}
    data = {"composite": "NONE"}
    headers = {"Prefer": "respond-async"}
    resp = session.post("my/url", headers=headers, data=data, files=files)
Run Code Online (Sandbox Code Playgroud)

问题是代码在发送之前加载整个文件,并且在上传大文件时会遇到MemoryError.我环顾四周,流式传输数据的方式是设置

resp = session.post("my/url", headers=headers, data=f)
Run Code Online (Sandbox Code Playgroud)

但我需要在数据中添加{"composite":"NONE"}.如果没有,服务器将无法识别该文件.

python file-upload large-file-upload python-requests

10
推荐指数
1
解决办法
6784
查看次数

通过Internet将大型二进制文件从一台PC发送到另一台PC的最快方法是什么?

我需要通过Internet将大型二进制(2Gb-10Gb)数据从一台PC(客户端)发送到另一台PC(服务器).首先,我尝试使用带有消息安全性的wsHttpBinding绑定在IIS中托管的WCF服务,但是花了很多时间(几天)这对我来说是不合适的.现在我考虑使用套接字编写客户端和服务器应用程序.会更快吗?

最好的方法是什么?

谢谢

.net c# wcf large-files large-file-upload

6
推荐指数
1
解决办法
3032
查看次数

在后台上传大文件(服务在应用关闭时重新启动)

我想上传大文件(~10 - 100Mb wifi或移动网络),但在后台,因为用户可能会离开应用程序,稍后系统将关闭应用程序(如果不是enoguh内存)我为此创建了一个服务但我的问题是,当我杀死应用程序服务重新启动和上传再次开始.没有解决方案我发现了同样的问

用户退出应用程序后保持后台服务活动

每次关闭应用程序时,我的服务都会重新启动

所以它不起作用,但解决方案是什么?youtube app怎么样???

service upload android large-files large-file-upload

6
推荐指数
1
解决办法
4729
查看次数

从前端上传大文件

我试图了解将大文件从前端上传到服务器的最佳方法是什么。对于前端,我使用一个名为的库react-dropzone,它允许我获取我打算上传的文件的信息。我的上传组件看起来像这样:

// Node Modules
import React, {useCallback} from 'react';
import {useDropzone} from 'react-dropzone';
import {useTranslation} from 'react-i18next';

export default function Upload() {
  // i18n
  const [t] = useTranslation();

  // React Dropzone
  const onDrop = useCallback((droppedFiles) => {
    console.log(droppedFiles);
  }, []);
  const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});

  return (
    <div className="upload" {...getRootProps()}>
      <input {...getInputProps()} />
      {isDragActive ? (
        <p>{t('DROP_FILES_HERE')}</p>
      ) : (
        <p>{t('DRAG_AND_DROP_FILES_HERE_OR_CLICK_TO_SELECT_FILES')}</p>
      )}
    </div>
  );
}
Run Code Online (Sandbox Code Playgroud)

这使我能够访问文件的内容,例如文件的名称、类型和大小(以字节为单位)。文件上传示例内容 这个库似乎也适用于更大的文件(100+ MB),但我的问题是当我想上传这个数据时如何调用这些数据?

我的一个想法是使用localStorage,但最大大小似乎约为5 到 10 MB。我也在Redux …

javascript large-file-upload reactjs react-dropzone

6
推荐指数
0
解决办法
7660
查看次数

通过php上传大文件(0-5GB)的有效方法

我一直在寻找一个好的方法,并把头撞在墙上。

在一个文件共享服务项目中,我被指派确定上传大文件的最佳方法。

在 stackoverflow 和其他论坛上搜索了很多问题后,我得到了以下结果:

  1. 增加脚本最大执行时间以及允许的最大文件大小

    这个案子确实不太合适。每次通过普通宽带连接(1mbps-2mbps)上传文件时几乎都会超时。即使上传完成后执行PHP脚本,仍然不能保证上传不会超时。

  2. 分块上传。

    虽然我有点明白我应该在这里做什么,但我感到困惑的是,假设正在上传一个 1GB 的文件,我正在以 2MB 的块读取它,但如果上传很慢, php 脚本执行将超时并给出错误。

  3. 使用 Java 和 Perl 等其他语言?

    使用java或perl处理文件上传真的有效吗?

客户端使用的方法不是这里的问题,因为我们将发布一个客户端 SDK,并且可以在其中实现我们选择的方法。客户端和服务器端的实现都将由我们决定。

根据您的观点,考虑到内存使用效率应该很高,并且可能有很多并发上传,哪种方法应该是最好的方法?

Dropbox 和类似的云存储服务如何处理大文件上传并保持快速上传?

php apache upload chunked large-file-upload

5
推荐指数
1
解决办法
2万
查看次数