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

1. 需求

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

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

 

2. 实现

        /// <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"即可

using(AliyunOssHelper oss = new AliyunOssHelper())
{
    Uri uri = oss.GetUriFromOss(key, "attachment"); 
    ...    
}

 

 

 

posted @ 2019-11-04 10:02  wjefi  阅读(376)  评论(0)    收藏  举报