Posts in 五月 2024
阿里云对象存储产品文档:通过设置HTTP头管理OSS文件元数据
阿里云 OSS 生成对象的下载 URL 时,浏览器会使用保存到 OSS 的文件名作为下载文件名。
但一般业务,在保存时,会生成一个“唯一”的文件名,比如用 GUID 生成——这就导致 下载文件名 与 实际文件名 不一致的问题。
为了解决这个问题,可以在上传文件时,通过设置 Content-Disposition 来解决。
public string? PutObject(string fileName, string key, Stream content)
{
var client = GetClient();
var _ = client.PutObject(AppSettings.OSSBucketName, key, content, new ObjectMetadata()
{
阿里 OSS SDK 里更新元数据的方法有问题,会报字典同 key 异常,移除 Date 字段后可正常更新。
public void UpdateMeta(string fileName, string key)
{
OssClient client = GetClient();
var metadata = client.GetObjectMetadata(AppSettings.OSSBucketName, key);
metadata.ContentDisposition = $attachment;filename*=utf-8''{HttpUtils.EncodeUri(fileName, utf-8)};
metadata.HttpMetadata.Remove(Date);
client.ModifyObjectMeta(