开发者社区 问答 正文

通过阿里云的sdk下载设置防盗链后的文件,如何加refer参数

var client = new OssClient(endpoint, accessKeyId, accessKeySecret);

通过阿里云下载文件sdk,下载设置了防盗链且refer设置不能为空的文件,如何添加refer参数

展开
收起
游客dexwrvbxlfki6 2020-08-07 17:22:05 743 分享 版权
阿里云 AI 助理回答

在使用阿里云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的防盗链检查。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答