var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
通过阿里云下载文件sdk,下载设置了防盗链且refer设置不能为空的文件,如何添加refer参数
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云OSS SDK下载设置了防盗链且Referer不能为空的文件时,您需要在请求中添加合法的Referer头信息。这可以通过修改请求的头部参数来实现。以下是一个示例代码片段,展示如何在C# SDK中为下载请求添加Referer头:
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
var bucketName = "your_bucket_name";
var objectName = "your_object_path";
// 创建GetObjectRequest实例,并设置Referer头
var getObjectRequest = new GetObjectRequest(bucketName, objectName)
{
// 添加合法的Referer地址,确保与Bucket配置的Referer白名单匹配
Headers = { {OssHeaders.Referer, "http://www.your-allowed-referer.com"} }
};
try
{
// 执行下载操作,此时会携带指定的Referer头
var stream = client.GetObject(getObjectRequest);
// 处理下载的流,例如保存到本地文件等
}
catch (OssException ex)
{
Console.WriteLine($"Failed with error code: {ex.ErrorCode}; Error info: {ex.Message}. \nRequestID:{ex.RequestId}\tHostID:{ex.HostId}");
}
catch (Exception ex)
{
Console.WriteLine($"Failed with error info: {ex.Message}");
}
请将"http://www.your-allowed-referer.com"
替换为实际允许的Referer地址,确保它已被包含在Bucket的Referer白名单中。这样,您的下载请求就会携带正确的Referer头信息,从而通过OSS的防盗链检查。