我正在建立一个网站,用户可以上传一些视频,如果视频太大,我想降低其质量并保存到我的cloudinary帐户。
此代码:
返回获取(
https://api.cloudinary.com/v1_1/${CLOUD_NAME}/${type === 'img' ? 'image' : 'video'}/upload
按预期上传视频,但是当我最后添加诸如 q_20 或 q_auto 之类的内容时:
返回获取(
https://api.cloudinary.com/v1_1/${CLOUD_NAME}/${type === 'img' ? 'image' : 'video'}/upload/q_20
它给了我一个 404 错误以及“被 cors 阻止”错误。
我不知道这是否重要,但是这段代码是在前端使用react编写并在localhost3000上运行的。
在 URL 末尾添加
q_20
将返回 404,因为这会使 URL 与 Cloudinary 上的任何有效 API 端点不匹配。
根据您的帖子,我了解到您在将视频存储到您的 Cloudinary 帐户之前尝试将其转换为
quality: 20
。如果是这种情况,则这称为 传入转换,您需要在请求正文中设置该 transformation
参数,而不是附加到 API URL。
例如,您可以将其作为 FormData 发送,如下所示:
let formData = new FormData();
formData.append('file', <your image or video URL/blob etc>);
formData.append('transformation', 'q_20');
然后将
formData
作为 fetch()
通话正文的一部分发送。
我不确定您使用的是 Cloudinary 上的哪个套餐,但至少在免费套餐中,您可以上传的视频的最大文件大小为 100MB。如果您的视频高于要上传的视频,则调整视频大小(例如从高清分辨率到标清分辨率)或降低质量应该会有所帮助。