2019-11-04 oss实现浏览器强制下载

1. 需求浏览器

项目使用aliyun oss进行附件上传管理,对于文本、图片等上传文件浏览器下载后会直接打开。ide

现须要下载至本地不直接打开。spa

 

2. 实现code

        /// <summary>
        /// 获取下载连接 @hexx 2019-10-29
        /// </summary>
        /// <param name="bucketName"></param>
        /// <param name="key"></param>
        /// <param name="contentDisposition"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public static Uri GetPresignedUriByKey(string bucketName, string key, string contentDisposition)
        {
            try
            {
                var req = new GeneratePresignedUriRequest(bucketName, key, SignHttpMethod.Get);
                
                req.ResponseHeaders = new ResponseHeaderOverrides
                {
                    ContentDisposition = contentDisposition
                };

                var uri = client.GeneratePresignedUri(req);

                return uri;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

调用时将contentDisposition设为"attachment"便可blog

using(AliyunOssHelper oss = new AliyunOssHelper())
{
    Uri uri = oss.GetUriFromOss(key, "attachment"); 
    ...    
}
相关文章
相关标签/搜索