问题标签 [resume-upload]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1113 浏览

ruby-on-rails - Ruby on Rails 中的可恢复上传

我正在寻找一个可在我的 RoR 应用程序中使用的可恢复文件上传组件。我找到了一个:http: //github.com/taf2/resume-up/tree/master(内置原生 Ruby,但它需要 google gears,这是一个现已停产的产品..)

此外,http ://github.com/dassi/mediaclue 是他们使用 jumploader java 小程序的另一个应用程序。更多信息:jumploader.com

有没有办法在不使用 java-applet 的情况下实现这个功能?

0 投票
1 回答
2940 浏览

nginx - 使用 upload_module 和 multipart/form 的 nginx 可恢复上传

我目前使用来自自定义桌面应用程序的上传模块(http://www.grid.net.ru/nginx/upload.en.html)上传到 nginx 服务器上的 web 服务,该应用程序执行简单的多部分形式 POST 发送文件在一部分中,而 base64 编码的 XML 与文件的元数据在另一部分中。

服务器接收到这个 POST,将它传递给我的网络服务,它读取元数据,处理文件,一切都很好。

我现在要做的是使用上传模块的upload_resumable 指令分块进行POST,以最大程度地减少断开连接的机会并允许恢复。我目前可以按照此处描述的协议执行此操作:http: //www.grid.net.ru/nginx/resumable_uploads.en.html

一个发送文件的字节范围以及一些标题以在多个帖子中识别块和会话,一旦所有部分都上传,nginx 将组成包含文件名和路径的最终 POST 并将其传递到您的 upload_pass 位置(在我的情况下,这是一个 django 应用程序的 CGI)。

但是,我不清楚如何使用这种方法发送多部分帖子,因为协议表明 POST 的主体必须是字节范围内指示的字节。我需要最后一篇文章来包含我在上面写的 XML。

我可以考虑将 XML 作为正文的第一个字节和一个标头发送,该标头指示属于它的字节数,但这意味着需要对最终文件进行额外处理以删除该标头,并且最终文件可能在 GB 大小范围内.

还有其他想法吗?

0 投票
1 回答
886 浏览

javascript - 可恢复的 Youtube 上传器是如何工作的?

知道 youtube 视频上传器是如何工作的吗?这里有趣的功能是您可以恢复中断的上传过程(例如,当您关闭浏览器或同时丢失互联网连接时)。他们似乎不使用 Java、Flash 或其他一些原生的东西。也许有任何花哨的 HTML5 东西?还是特定于浏览器的方法?

0 投票
1 回答
1491 浏览

performance - 如何使用 Delphi 2010 优化上传程序?

尚未发布的Delphi 2010 应用程序允许用户将他们的文件上传到我的服务器。现在我正在使用 HTTPS POST 发送文件,(简化的)算法基本上是:

  1. 将文件拆分为“切片”(每个 256KB)
  2. 对于每个切片,将其发布到服务器

IE。对于 1MB 的文件:

我正在使用Indy 10。我(ab)一遍又一遍地使用我的分析器,除了更改上传例程本身之外,没有太多可以优化的地方。

我也在使用多线程,即使我尽了最大努力优化我的代码,我的基准测试仍然告诉我我可以做得更好(还有其他优化良好的软件可以实现更好的时序......几乎是两倍像我的上传程序一样快!)

我知道这不是我的服务器的错……以下是我仍然需要探索的想法:

  1. 我尝试在单个 POST 中对切片进行分组,这自然会提高性能(20-35%),但现在恢复能力降低了。

  2. 我也考虑过使用 SFTP / SSH,但我不确定它是否很快。

  3. 使用 web sockets 来实现可恢复的上传(比如这个组件),我也不确定速度。

现在我的问题是:有什么办法可以加快上传速度吗?我愿意接受任何我可以实施的建议,包括命令行工具(如果许可证允许我将它与我的应用程序一起发布),前提是:

  1. 支持可续传
  2. 快速地!
  3. 合理的内存使用
  4. 安全并允许登录/用户身份验证

此外,由于主要的安全问题,我不想实现 FTP。

非常感谢!

0 投票
1 回答
920 浏览

ios - Objective-C 中的可恢复上传

我的 iOS 应用程序的一部分是将大文件上传到服务器。我的用户的互联网连接并不总是理想的。

有什么方法可以执行可恢复上传吗?

PS 请求类型为 HTTP,但如果不支持,可以切换。

0 投票
2 回答
812 浏览

java - 从 Java 客户端到 Grails Web 应用程序的可恢复上传?

经过近 2 个工作日的谷歌搜索并尝试了我在整个网络上找到的几种不同的可能性,我在这里提出这个问题,希望我最终能得到答案。

首先,这就是我想要做的:

我正在开发一个客户端和一个服务器应用程序,目的是在单个服务器上的多个客户端之间交换大量大文件。客户端使用纯Java (JDK 1.6) 开发,而 Web 应用程序使用Grails (2.0.0) 完成。

由于客户端的目的是允许用户交换大量大文件(通常每个大约 2GB),我必须以某种方式实现它,以便上传可恢复,即用户能够停止和恢复上传随时。

是我到目前为止所做的:

我实际上设法做我想做的事情并将大文件流式传输到服务器,同时仍然能够使用原始套接字暂停和恢复上传。我会向服务器发送一个常规请求(使用 Apache 的 HttpClient 库),让服务器向我发送一个可供我免费使用的端口,然后在服务器上打开一个 ServerSocket 并从客户端连接到该特定套接字。

这是问题所在

实际上,这至少存在两个问题:

  1. 我自己打开这些端口,所以我必须自己管理打开和使用的端口。这是相当容易出错的。
  2. 我实际上绕过了 Grails 管理大量(并发)连接的能力。

最后,这是我现在应该做的事情和问题

由于我上面提到的问题是不可接受的,我现在应该使用 Java 的 URLConnection/HttpURLConnection 类,同时仍然坚持使用 Grails。

连接到服务器并发送简单的请求完全没有问题,一切正常。当我尝试使用流(客户端中的连接的 OutputStream 和服务器中的请求的 InputStream)时,问题就开始了。打开客户端的 OutputStream 并向其写入数据非常简单。但是从请求的 InputStream 中读取对我来说似乎是不可能的,因为它看起来总是空的。

示例代码

这是服务器端(Groovy 控制器)的示例:

这是我在客户端(Java 类)所做的:

正如我所提到的,问题在于它request.inputStream总是产生一个空的 InputStream,所以我永远无法从中读取任何内容(当然)。但这正是我想要做的(所以我可以流式传输要上传到服务器的文件,从 InputStream 中读取并将其保存到文件中),这相当令人失望。

我尝试了不同的 HTTP 方法不同的数据负载,还一遍遍地重新排列代码,但似乎无法解决问题。

我希望找到什么

当然,我希望找到解决我的问题的方法。任何东西都会受到高度赞赏:提示、代码片段、库建议等等。也许我什至都错了,需要朝着完全不同的方向前进。

那么,如何在不手动打开服务器端端口的情况下实现从 Java 客户端到 Grails Web 应用程序的相当大(二进制)文件的可恢复文件上传?

0 投票
2 回答
3912 浏览

python - 2小时后Google Drive Python API可恢复上传错误401

首先,如果这是一个太愚蠢的问题,我很抱歉......这是我第一次尝试使用该脚本中涉及的任何技术(Python、驱动器 api、oauth 2.0 等)。我发誓在发布问题之前我已经搜索并尝试了大约一周。呵呵呵呵

我正在尝试使用 google-api-python-client 上传一个仅在 Linux Debian 终端上的大文件(3.5GiB)。我在上传小文件方面取得了一些成功,但是当我尝试上传大文件时,上传会在 HTTP 401 错误(未经授权)开始后大约 1~2 小时停止。我一直在寻找如何获得新的访问令牌,但收效甚微。

到目前为止,这是我的(更新的)代码:

经过一番挖掘,我发现授权的http对象在收到401后会自动刷新访问令牌。虽然它确实改变了访问令牌,但仍然没有按预期继续上传......见下面的输出:

我正在使用安装了 Python 2.5.2 的 debian lenny,大约一周前通过 pip install 安装了 ssl 和 google-api-python-client。

提前感谢您的帮助。

编辑:显然,问题不在于 api。我尝试了上面相同的代码,但是有两个小文件,它们之间有 1h (system.sleep())。输出是:

对于第二次上传,成功使用了新的访问令牌。那么,也许可恢复会话会在一段时间后到期,或者仅对该特定访问令牌有效?

0 投票
1 回答
1495 浏览

java - 使用 java youtube API 恢复上传

我正在尝试使用 Java API 将视频上传到 YouTube,如下所示:

我的互联网连接缓慢且不稳定,如果我可以恢复上传工作,那将非常有帮助。此处此处的文档似乎向我建议,“setDirectUploadEnabled(false)”应该完全可以解决问题。嗯......显然它没有。

如果我的 Internet 连接中断,则会引发 IOException 并且不会自动恢复上传。

如何恢复上传?

0 投票
0 回答
1325 浏览

android - Android Google Drive Resumable Upload 经常失败

我在将 mp4 文件上传到谷歌驱动器时遇到问题。我正在使用可恢复上传。块大小设置为最小大小的多重性(取决于要上传的文件大小以使进度条工作)。小文件的上传几乎总是有效。但是当文件大约 50 MB 时,上传经常失败。EOFException上传一开始有异常或Unexpected end of stream上传中间某处出现异常“”。经过多次测试,看起来行为是随机的,有时有效,有时无效。我正在使用通过 eclipse 插件下载的最新 Google Drive API。我正在使用带有“ AccountPicker”活动的默认授权。我在谷歌搜索上看到了很多提示,但没有解决问题。例如设置“ System.setProperty("http.keepAlive", "false")”。这是我的上传方法:

我注意到“ EOFException”主要是在长时间不使用谷歌驱动器并完成上传请求时生成的。例如,当完成文件夹列表并在上传完成后立即“ EOFException”不会生成。我在每个活动时间生命周期中只创建一次凭证对象和驱动服务对象。也许需要一些刷新?你能帮忙吗?提前致谢。

0 投票
1 回答
1355 浏览

android - 在 Android 中使用 YouTube 数据 API v3 可恢复的 YouTube 上传

我正在使用YouTube Data API v3从我的 Android 应用程序将视频上​​传到我的 YouTube 帐户。上传过程完美。我需要的是,如果我的上传被中断(例如,因为 Internet 连接),我需要在下一次离开的地方开始上传。

我怎样才能做到这一点?


使用 VideoUploadAsyncTask 类 doInBackground 方法进行更新