我正在使用 Vercel 上托管的 Next.js v13,我希望允许用户直接从前端上传视频到 Vimeo 服务器。我了解如何将视频上传到他们的帐户,但我需要将它们上传到我的帐户。问题是我不能只向客户端公开我的个人访问令牌。 (我宁愿不这样做,即使它只有一个上传范围)
目前,我看到的唯一选择是将视频上传到临时存储解决方案(例如 AWS S3),然后从那里上传到 Vimeo。
我尝试将视频作为 formData 上传到我的后端,然后从那里上传到 Vimeo,这可行,但仅限于小视频,因为无服务器功能可以承受的量是有限的。
要从应用程序的前端将视频直接上传到 Vimeo 服务器上的集中帐户,您可以使用此处描述的可恢复上传方法:https://developer.vimeo.com/api/upload/videos#resumable-approach
做法是:
upload.upload_link
字段返回到前端作为 API 端点的响应。从这里你可以做任何你想做的事情,推出你自己的tus上传实现(类似于上面的链接描述的),或者使用库tus实现,我推荐tus-js-client,这是我用来解决这个问题的问题。他们内置了对“Vimeo 风格”上传的支持,我觉得非常好。