alibabacloud-csharp-sdk icon indicating copy to clipboard operation
alibabacloud-csharp-sdk copied to clipboard

[BUG] OSS SDK存在Content-Type强制覆盖导致用户设置无效

Open LeaFrock opened this issue 2 years ago • 6 comments

起因

在通过自定义域名访问OSS部分文件时,希望可以直接在浏览器中预览而非触发下载操作。

按照官方文档《通过文件URL访问图片无法预览而是以附件形式下载?》的说法,只需要设置Content-Disposition为inline即可。

但通过新版SDK上传图片、音频等文件后,通过浏览器访问地址仍始终触发浏览器下载操作。而旧版本SDK上传后,操作结果符合预期。

调查结果

在旧SDK中,会根据文件扩展名来决定Content-Type,如png图片文件是image/png

而在新版SDK中,则直接在AlibabaCloud.OpenApiClient.Client请求前headers["content-type"]强制覆盖成了application/octet-stream。在OSS Browser客户端查看文件时,其HTTP头如下:

1668763573863

将Content-Type改成image/png后,访问图片地址成功显示预览而非触发下载。

这应该是一个Bug,希望能尽快修复!@yndu13

LeaFrock avatar Nov 18 '22 09:11 LeaFrock

@LeaFrock 请问你怎么解决的

WessonStar avatar Mar 05 '23 16:03 WessonStar

@WessonStar 只能使用旧的,或者自己单独对用到的几个接口做封装。

阿里云团队似乎对.NET SDK的实现质量并不十分重视。

LeaFrock avatar Mar 07 '23 06:03 LeaFrock

@LeaFrock 我发现 OSS 在一定程度内是兼容 AWS S3 协议的,所以使用最新版的 S3 SDK 操作 Object 即可。亲测可用,Content-Type 正常设置了

WessonStar avatar Mar 09 '23 06:03 WessonStar

@WessonStar 你说的是这个吗?曲线救国了属于是 🤣

不过,哪天不再兼容S3或者SDK有什么功能调整,可能又会遇到新问题,感觉也是在埋坑。最好还是阿里云官方提供高质量的.NET SDK,哎……

LeaFrock avatar Mar 09 '23 07:03 LeaFrock

@LeaFrock 但是目前,三个sdk里,s3 是最值得信赖的。阿里云明显对于 sdk 的维护不上心(很多年)。另一方面,也应当减少对 oss 专有特性的依赖。

WessonStar avatar Mar 09 '23 13:03 WessonStar

@sdk-team @peze @yndu13 都快一年了,都能提供一下修复呢?

cipchk avatar Nov 30 '23 13:11 cipchk