我正在尝试将tus服务器与神社集成,以便将视频文件上传到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我使用的是me2宝石。
有人能提供一个解决方案来集成/配置tus服务器与神社吗?
任何帮助都是非常感谢的!
发布于 2018-11-23 20:08:13
图-红宝石服务器和神殿的作者:)
就我而言,你有两个选择:使用Vimeo的“拉上传”,或者直接上传到Vimeo。
A.拉上传
Vimeo的拉上传允许您为Vimeo提供指向您的文件的链接,并让它下载并为您保存该文件。这应该是可恢复的,因为tus-ruby服务器支持范围请求,而且Vimeo似乎会使用:
我们甚至处理可能出现的任何连接问题。
vimeo_me2 gem有一个用于拉上传的方法。因此,您只需为它提供到tus文件的链接,例如,如果您有一个带有Movie附件的video:
vimeo_client.pull_upload("Name of video", movie.video.url)B.直接上传到Vimeo
Vimeo还实施器的tus可恢复上传协议,所以理论上应该可以使用Uppy直接上传到Vimeo。在这种情况下,您可以摆脱tus-ruby-server。
我个人还没有尝试过这种方法。似乎有一个额外的第一步,创造视频,但其余的看起来像标准的tus协议。这是一个由Uppy作者创建的示例应用程序,所以我认为您应该能够从那里复制粘贴大量的东西。
我不推荐的方法是从tus服务器下载文件并使用vimeo_me2 gem将其上传到Vimeo。首先,下载不会恢复,因为shrine-tus使用的shrine-tus宝石还不支持可恢复下载。其次,虽然vimeo_me2 使用tus协议用于上传,但在发生连接错误时,它似乎没有做任何事情来恢复上传。它似乎还会将整个文件加载到内存中。
无论如何,备选方案A和B将更具表现力。
https://stackoverflow.com/questions/53445652
复制相似问题