问题标签 [resumable]

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 回答
408 浏览

upload - 使用 Google Cloud Storage 的可恢复上传会话 uri 请求

我正在尝试使用 Google Cloud Storage JSON API 生成可恢复的会话 uri。按照文档,我将以下 curl 命令放在一起,仅满足所需的参数

但是,这会超时并且服务器永远不会响应。请注意,Content-Type仅当还发送文件元数据时才需要。我也尝试过添加元数据和相关数据,但这也失败了。

在文档中的示例请求中,有一个Authorization: Bearer [YOUR_AUTH_TOKEN]步骤中未提及的标头。我也尝试过使用应用程序的 api 密钥添加它,但这也会超时。

存储桶上的 ACL 已设置为所有用户可写。未配置 CORS。

谁能指出我哪里出错了?

curl详细输出是

0 投票
0 回答
191 浏览

upload - google Drive v2 Resumable Uploading php api

我正在阅读可恢复下载到 Gdrive 的说明,但没有为 v2 API https://developers.google.com/drive/v2/reference/files/insert找到任何可行的示例

如何修改此代码以恢复为 google api ver-2 客户端版本 0.6.0.tar.gz 上传大文件

0 投票
1 回答
634 浏览

sdk - 使用谷歌云的JAVA库进行并行上传和合成

我可以使用谷歌云库进行可恢复上传。但它按顺序上传块。

有什么方法可以让我们并行化上传,然后像在 Gsutil 中使用客户端库那样使用 compose 操作?.

我在某处读到谷歌客户端库不是线程安全的。

我知道使用 API 调用可以做同样的事情,但我不想多次调用同一个 api 。

0 投票
0 回答
1001 浏览

google-cloud-storage - 可恢复上传到 GCS Google Cloud Storage 签名 url 的内容已损坏

我正在尝试使用 Postman 模拟可恢复上传到 GCS 签名 URL 来执行两个 PUT 以查看它是如何工作的。

参考了几篇帖子后:

我可以使用 Google Cloud Storage 签名 URL 进行可恢复上传吗?

使用签名 URL 上传到 Google Cloud

如何使用带有签名网址的 gcs-resumable-upload

我终于成功了,成功找回了 200 OK,但是文件损坏了。以下是步骤:

0)。POST 到我们的服务器(运行 NodeJS 8.11)以获取带有 action=="resumable" 的存储桶签名 URL。服务器代码是:

这将返回签名的网址

https://storage.googleapis.com/<bucket_name/<path_to_file>?GoogleAccessId=<service_account>&Expires=<expiry_time>&Signature=<signature>

1)。POST 到带有标题{ 'x-goog-resumable': 'start' }和空正文的签名 url。我返回了创建的 HTTP 201,并且“位置”标头的值与签名 URL 相同,&upload_id=AEnB2UqIJL_jf.....最后加上带有 upload_id 的“X-GUploader-UploadID”标头。

2)。要模拟单个文件大小为 730417 的 2 次上传,首先 PUT 到从 (1) 返回的“位置”,带有标题:

并在 Postman 中选择 body 作为“二进制”并选择源文件。我收到了 HTTP 308 (Resume Incomplete) 的响应,并且在响应头中:

3)。要检查当前的上传状态,请按照步骤 (2) 执行 PUT 到相同的“位置”网址,正文和标题为空:

我得到了与 (2) 中相同的 HTTP 308 (Resume Incomplete),以及响应标头:

此刻,我仍然没有从 GCS 存储桶控制台看到存储桶中上传的文件。

4)。到目前为止一切顺利,所以我用 PUT 的第二部分完成了它,带有以下标题的相同“位置”url,并选择正文作为“二进制”并选择相同的源文件:

我用响应头返回 HTTP 200 OK:

我可以看到上传的文件出现在 GCS 控制台中。

5)。现在的问题是:从GCS下载的文件与源文件的字节数相同,但MD5校验和与源文件不匹配。源文件是一个3页的PDF文件,上传的文件下载后只有最后一页。

会出什么问题?...我在邮递员步骤中做错了什么吗?...这些步骤似乎正确地遵循了这里的步骤https://cloud.google.com/storage/docs/xml-api/resumable-upload,但是损坏的内容对我来说很神秘,我不确定在哪里解决这个问题......也许使用另一个客户端来尝试恢复上传到签名网址?...任何建议都非常感谢,谢谢!

0 投票
0 回答
53 浏览

file-upload - 如何在 Drive.Files.insert() Drive API 中使用可恢复的上传类型

我尝试使用 Drive.Files.insert() 在 Google 应用程序脚本中制作超过 50mb 的 csv。(使用 Drve API)错误消息是空响应。我阅读了参考资料,但没有答案。这是代码。

感谢您阅读我的信息。

0 投票
0 回答
75 浏览

c# - BigQuery 中的可恢复上传

我们正在使用 Google BigQuery 并使用 C# SDK 从本地 csv 文件上传数据。我们可以使用 C# SDK 使用 Resumable Upload 功能吗?

0 投票
2 回答
593 浏览

node.js - Autodesk Forge - 将文件作为块上传到 Node JS 中的 BIM 360 存储时出现 504 网关超时

当我尝试使用PUTAutodesk forge 中的对象可恢复 API 端点上传“块”中的大文件时,出现 504 网关超时。

https://forge.autodesk.com/en/docs/data/v2/reference/http/buckets-:bucketKey-objects-:objectName-resumable-PUT/

我的控制台日志输出如下,显示了 504 响应以及我发送的 PUT 请求。

我尝试了各种方法,既使用forge-apisNode 中 SDK 中的函数(例如uploadChunk方法 from ),也使用,ObjectsAPI编写各种函数,以检查是否使用 await/async、promise vs callbacks 可以帮助解决问题。requestrequest-promise-native

在所有情况下,我都会得到相同的响应——日志中长时间停顿,然后是 504 网关超时——这似乎来自 Forge 端。

对于上下文,我的 Node JS 应用程序位于 Heroku 上,并由在客户端本地运行的 python 脚本触发 - 所以 Heroku 是“中间人” - 身份验证从客户端通过 python 传递到节点应用程序,然后传递给伪造认证。流程中的其他操作均成功,因此我确信身份验证正常工作。

任何人都可以从下面的日志中看到可能导致问题的任何内容吗?其他人在分块上传大文件时遇到过类似的 504 问题吗?(在这种情况下约为 130MB)

第一个日志显示我的控制台日志输出 - 我以 1 秒的间隔发送 5mb 块,并将块作为 Buffer 对象(字节)发送,切片以匹配 Content-Range

每个块的响应都是这样返回的:

0 投票
0 回答
474 浏览

nginx - 可恢复的js正在触发fileSuccess,而块没有在服务器中组装

我正在尝试使用带有 pion/laravel-chunk-upload 的 resumable.js 将 400MB 以上的文件上传到服务器。它允许我上传较小的文件,没有任何错误,但是当我尝试上传 400MB 的文件时,它就失败了。

服务器端代码:

saveFile 方法将保存文件并返回一个数组,我在 vue.js 中使用该数组来显示该文件已上传。

服务器配置:

PHP 7.3.15-3+ubuntu18.04.1,nginx

JS端代码:

我做的调试:

我已经检查并且块将进入服务器端并被存储,但是当服务器接收到最后一个块时,isFinished() 方法没有被调用,因此我的 vue.js 中出现错误。

在 resumable.js 的 fileSuccess 事件中,我正在调用一个函数 fileSuccess(file, message) ,在此我试图从服务器读取 saveFile() 方法返回的属性。最后一个块上传到服务器后,我得到返回为“{“done”:97}”,但我应该从服务器获得 saveFile 方法的返回。

我在这里想念什么?

0 投票
1 回答
273 浏览

rest - 谷歌浏览器和类似浏览器是否支持标准下载的范围标头

我的初始响应标头 - 注意 Accept-Ranges 标头

然后我重新启动服务器并单击 chrome 中的恢复下载,但 chrome 不会在Range请求标头中发回

我正在关注Mozilla 网站上的文档

我是否遗漏了标题或误解了它的工作原理,尤其是对于 chrome 和其他浏览器?是否有另一种方法可以通过发送正确的响应并理解正确的请求来手动支持恢复下载?从技术角度来看,如果 chrome 发回它现在需要的范围,我将能够恢复下载。

根据这篇文章,chrome应该支持这样的东西。我只需要指出正确的方向。

泰!

0 投票
0 回答
17 浏览

file-upload - tus如何设置文件名

我正在尝试在 Golang 中进行可恢复的上传,并且也相当新golang。我一直在网上查看一些示例,以便更好地了解可恢复上传。

我关心的是文件是如何命名的!我知道一旦使用CompleteUploads回调完成上传,我可以更改文件的名称。但我担心的是文件上传时的名称。基本上ID是上传的。

在官方演示页面上,它使用了19713a5b9f885586299ca78997349dsw. 在我遇到的一个示例存储库中,它使用了639bdff0-cc15-4aea-9d44-286f25jgo492. 虽然我可以访问后者的代码,但我没有找到任何可以定义 ID 正则表达式的名称。

不是一个非常强大的用例,但我如何确保 ID 遵循特定的正则表达式?