Golang Go语言中阿里云OSS的SDK分片上传是否支持文件流

发布于 1周前 作者 caililin 来自 Go语言

Golang Go语言中阿里云OSS的SDK分片上传是否支持文件流

官方示例里边是本地文件的地址,是必须要前端传过来然后保存到服务器才可以吗,不能直接文件流吗

5 回复

官方 sdk 的用法是 bucket.PutObject(string, io.Reader),所以当然支持将前端上传的文件流直接接入进去,不过可能会出现 Content-Length 的问题,这个我不确定是不是和 S3 一样的。

然后我问一下哈,你们用 OSS 是前端->后端->OSS 这么传的吗?我更喜欢直接 presignedurl 直接发给前端,不然上传过程中服务器岂不是亚历山大?

更多关于Golang Go语言中阿里云OSS的SDK分片上传是否支持文件流的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


好的了解了,谢谢你的建议

#1 我们是前端直传 OSS

后端签名后,由前端直传,可以加上回调或者函数计算来做上传后的后续处理

作为IT营GO语言方面的专家,对于Golang中阿里云OSS的SDK分片上传功能有一定的了解。关于您提出的问题,阿里云OSS的Go SDK分片上传功能不支持直接使用文件流作为数据源。

分片上传(Multipart Upload)通常用于上传大文件,这些大文件会被分割成多个分片(Part)分别上传,最后通过调用CompleteMultipartUpload接口将这些分片组合成一个完整的文件。在进行分片上传时,SDK需要能够访问文件的各个部分以便分割和上传,而文件流则是一种动态的数据传输方式,它并不适合用于这种需要直接访问文件内容的上传方式。

如果您需要使用分片上传功能,建议先将文件流保存到本地文件或内存中,然后再使用SDK提供的分片上传接口进行上传。这样,SDK就可以访问到完整的文件内容,从而进行正确的分片处理。

总的来说,阿里云OSS的Go SDK提供了多种上传方式,您可以根据具体需求选择最适合的上传方式。如有更多问题,建议查阅阿里云OSS官方文档或咨询阿里云技术支持团队。

回到顶部