Tus 服务器与 shrine 集成 "Dealing with large uploads filesize > 1 gb"
Tus server Integration with shrine "Dealing with large uploads filesize > 1 gb"
我正在尝试集成 tus-server with shrine 以将视频文件上传到 Vimeo。
Client.js
this.uppy = new Uppy({
id: 'uppy1',
autoProceed: false,
debug: true,
restrictions: {
allowedFileTypes: ['.mp4'],
},
allowMultipleUploads: true,
})
.use(Tus, { endpoint: `${API_BASE}/files` })
/* .use(XHRUpload, { endpoint: `${API_BASE}/files`,
formData: true,
bundle: false,
fieldName: 'file',
headers: getHeaders(), */
})
.use(GoogleDrive, { serverUrl: 'https://companion.uppy.io' })
.use(Dropbox, { serverUrl: 'https://companion.uppy.io/' });
# config/routes.rb (Rails)
Rails.application.routes.draw do
mount Tus::Server => "/files"
end
这里默认tus服务器,直接上传文件到项目根目录下的data/
文件夹
我想要实现的是将 video
文件上传到 Vimeo
喜欢:
- 文件转到
${API_BASE}/files
- 矿山控制器获取文件
- 我将文件传递给 Vimeo(使用 vimeo_me2)
- Vimeo上传文件,发回video_url,我现在在某个视频里插入video_urltable。
- 以上所有这些过程都需要可恢复。
我正在使用 vimeo_me2 gem.
谁能提供 integrate/configure tus server with shrine 的解决方案?
非常感谢任何帮助!
这里是 tus-ruby-server 和 Shrine 的作者:)
就我而言,您有两个选择:使用 Vimeo 的 "pull upload",或直接上传到 Vimeo。
一个。拉取上传
Vimeo 的 pull upload allows you to give Vimeo the link to your file, and let it download and save the file for you. This should be resumable, because tus-ruby-server supports range requests,而且 Vimeo 似乎会使用那个:
We even handle any connectivity issues that might come up.
vimeo_me2
gem 有一个 method 用于拉取上传。所以你可以只给它 link 到 tus 文件,例如,如果你有一个 Movie
和一个 video
附件:
vimeo_client.pull_upload("Name of video", movie.video.url)
乙。直接上传到 Vimeo
Vimeo 也implements tus 断点续传协议,所以理论上应该可以使用Uppy 直接上传到Vimeo。在那种情况下,您可以摆脱 tus-ruby-server
.
我还没有亲自尝试过这种方法。创建视频似乎还有一个额外的第一步,但其余部分看起来像标准的 tus 协议。这是一个 example app 由 Uppy 的作者创建的,所以我认为你应该能够从那里复制粘贴很多东西。
我不推荐的方法是从tus服务器下载文件并使用vimeo_me2
gem上传到Vimeo。首先,下载将无法恢复,因为 down
gem that shrine-tus
uses doesn't yet support resumable downloads. Secondly, while vimeo_me2
uses the tus protocol 用于上传,在连接错误的情况下似乎无法恢复上传。它还似乎将整个文件加载到内存中。
无论如何,选项 A 和 B 的性能会更高。
我正在尝试集成 tus-server with shrine 以将视频文件上传到 Vimeo。
Client.js
this.uppy = new Uppy({
id: 'uppy1',
autoProceed: false,
debug: true,
restrictions: {
allowedFileTypes: ['.mp4'],
},
allowMultipleUploads: true,
})
.use(Tus, { endpoint: `${API_BASE}/files` })
/* .use(XHRUpload, { endpoint: `${API_BASE}/files`,
formData: true,
bundle: false,
fieldName: 'file',
headers: getHeaders(), */
})
.use(GoogleDrive, { serverUrl: 'https://companion.uppy.io' })
.use(Dropbox, { serverUrl: 'https://companion.uppy.io/' });
# config/routes.rb (Rails)
Rails.application.routes.draw do
mount Tus::Server => "/files"
end
这里默认tus服务器,直接上传文件到项目根目录下的data/
文件夹
我想要实现的是将 video
文件上传到 Vimeo
喜欢:
- 文件转到
${API_BASE}/files
- 矿山控制器获取文件
- 我将文件传递给 Vimeo(使用 vimeo_me2)
- Vimeo上传文件,发回video_url,我现在在某个视频里插入video_urltable。
- 以上所有这些过程都需要可恢复。
我正在使用 vimeo_me2 gem.
谁能提供 integrate/configure tus server with shrine 的解决方案?
非常感谢任何帮助!
这里是 tus-ruby-server 和 Shrine 的作者:)
就我而言,您有两个选择:使用 Vimeo 的 "pull upload",或直接上传到 Vimeo。
一个。拉取上传
Vimeo 的 pull upload allows you to give Vimeo the link to your file, and let it download and save the file for you. This should be resumable, because tus-ruby-server supports range requests,而且 Vimeo 似乎会使用那个:
We even handle any connectivity issues that might come up.
vimeo_me2
gem 有一个 method 用于拉取上传。所以你可以只给它 link 到 tus 文件,例如,如果你有一个 Movie
和一个 video
附件:
vimeo_client.pull_upload("Name of video", movie.video.url)
乙。直接上传到 Vimeo
Vimeo 也implements tus 断点续传协议,所以理论上应该可以使用Uppy 直接上传到Vimeo。在那种情况下,您可以摆脱 tus-ruby-server
.
我还没有亲自尝试过这种方法。创建视频似乎还有一个额外的第一步,但其余部分看起来像标准的 tus 协议。这是一个 example app 由 Uppy 的作者创建的,所以我认为你应该能够从那里复制粘贴很多东西。
我不推荐的方法是从tus服务器下载文件并使用vimeo_me2
gem上传到Vimeo。首先,下载将无法恢复,因为 down
gem that shrine-tus
uses doesn't yet support resumable downloads. Secondly, while vimeo_me2
uses the tus protocol 用于上传,在连接错误的情况下似乎无法恢复上传。它还似乎将整个文件加载到内存中。
无论如何,选项 A 和 B 的性能会更高。