Bunny存储高分辨率媒体上传异常问题求助
使用Bunny存储服务上传高分辨率媒体文件异常问题
我使用Bunny存储服务上传媒体文件时遇到异常:上传高分辨率图片或视频后,取回的图片会出现水平或垂直裁切(半白半图),视频时长被缩短至几秒;而低于全高清的低分辨率文件则可正常使用。
上传流程
Media -> Frontend App (React) -> multipart form -> -> Server (NodeJS / Fastify) -> 以Filestream或Buffer读取文件 -> -> PUT (application/octet-stream) -> Bunny Storage
疑问
有没有人遇到过类似问题?可能的原因是什么?是我的服务端问题还是上传至存储的方式问题?
注:因代码量较大暂未提供完整代码,若需要可提供片段。
已尝试的操作
- 尝试过不同文件格式,结果一致
- 调整图片分辨率可解决图片问题,但视频暂无法调整分辨率
- 在服务端用Filestream或Buffer读取文件,均无改善
相关代码片段
Controller
async function createMedia(req, res) { if (!req.isMultipart()) { return res.status(400).send("Wrong content type, must use multipart/form-data") } try { const { eventId } = req.params const data = await req.file() const { type, tags, date, media} = data.fields const mediaData = { eventId, type: type?.value, tags: tags?.value?.split(",").map((x) => x.trim()), date: date?.value, storageId: EVENT_MEDIA_PATH, media } return await mediaService.createMedia(mediaData) } catch (e) { console.error("create media error", e) res.status(402).send(e) } }
Service
async function createMedia({ date, type, tags, eventId, storageId, media, }) { const mediaName = await storageService.handleFileUpload(EVENT_MEDIA_PATH, media) return Media.create({ date, type, tags, eventId, storageId, mediaName, }) }
PUT逻辑
const handleFileUpload = async (storagePath, file) => { const filename = generateFileSlug(file.filename) const response = await axios.put( `https://${HOSTNAME}/${STORAGE_ZONE_NAME}/${storagePath}/${filename}`, file.file, { headers: { AccessKey: ACCESS_KEY, "Content-Type": "application/octet-stream" } } ) if (response.data) { return filename } }
内容的提问来源于stack exchange,提问作者SebMaz
相关产品推荐
相关产品推荐

