详情页标题前

阿里云对象存储OSS.NET范围下载-云淘科技

详情页1

如果仅需要文件中的部分数据,您可以使用范围下载,下载指定范围内的数据。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见.NET初始化。
  • 要范围下载,您必须有oss:GetObject权限。具体操作,请参见为RAM用户授权自定义的权限策略。

示例代码

以下代码用于下载指定范围内的数据。

using Aliyun.OSS;
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
var endpoint = "yourEndpoint";
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// 填写Bucket名称,例如examplebucket。
var bucketName = "examplebucket";
// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
var objectName = "exampledir/exampleobject.txt";
// 下载Object到本地文件examplefile.txt,并保存到指定的本地路径中(D:\localpath)。如果指定的本地文件存在会覆盖,不存在则新建。
// 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。
var downloadFilename = "D:\localpath\examplefile.txt";

// 创建OssClient实例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
    var getObjectRequest = new GetObjectRequest(bucketName, objectName);
    // 设置Range,取值范围为第20至第100字节。
    getObjectRequest.SetRange(20, 100);
    // 范围下载。getObjectRequest的setRange可以实现文件的分段下载和断点续传。
    var obj = client.GetObject(getObjectRequest);
    // 下载数据并写入文件。
    using (var requestStream = obj.Content)
    {
        byte[] buf = new byte[1024];
        var fs = File.Open(downloadFilename, FileMode.OpenOrCreate);
        var len = 0;
        while ((len = requestStream.Read(buf, 0, 1024)) != 0)
        {
            fs.Write(buf, 0, len);
        }
        fs.Close();
    }
    Console.WriteLine("Get object succeeded");
}
catch (Exception ex)
{
    Console.WriteLine("Get object failed. {0}", ex.Message);
}

GetObjectRequest可以设置以下参数:

参数

说明

Range

指定文件传输的范围。

ModifiedSinceConstraint

如果指定的时间早于实际修改时间,则正常传送文件。否则抛出304 Not Modified异常。

UnmodifiedSinceConstraint

如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件。否则抛出412 precondition failed异常。

MatchingETagConstraints

传入一组ETag,如果传入期望的ETag和文件的 ETag匹配,则正常传输文件。否则抛出412 precondition failed异常。

NonmatchingEtagConstraints

传入一组ETag,如果传入的ETag值和文件的ETag不匹配,则正常传输文件。否则抛出304 Not Modified异常。

ResponseHeaderOverrides

自定义OSS返回请求中的一些Header。

相关文档

  • 关于范围下载的完整示例代码,请参见GitHub示例。

  • 关于范围下载的API接口说明,请参见GetObject。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/158449.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云对象存储OSS实时计算Flink读写OSS或者OSS-HDFS-云淘科技

    阿里云实时计算Flink支持通过连接器读写OSS以及OSS-HDFS数据。通过配置OSS或者OSS-HDFS连接器的输入属性,实时计算Flink会自动从指定的路径读取数据,并将其作为实时计算Flink的输入流,然后将计算结果按照指定格式写入到OSS或者OSS-HDFS的指定路径。 前提条件 已开通Flink全托管。具体操作,请参见开通Flink全托管。 开通…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSS验证Referer防盗链是否生效-云淘科技

    在OSS配置Referer白名单来允许特定域名的网站可以访问OSS文件后,您可以使用curl命令测试设置的防盗链是否生效。 前提条件 配置Referer防盗链来阻止其他网站引用OSS文件 操作步骤 使用curl命令测试的三种场景如下: 白名单中的Referer 通过curl命令加参数-e,传递设置的白名单中Referer到访问地址,代表由http://www…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSS为什么很长时间没有产生清单结果?-云淘科技

    本文介绍配置清单规则后,在很长时间内没有产生清单结果的可能原因及解决方法。 存放清单结果的目标Bucket配置了Deny清单结果写入的权限策略 例如,存放清单结果的目标Bucket配置了限定固定IP地址写入清单结果的权限策略,清单后台程序写入的IP地址不在您配置的允许IP地址范围内。 解决方法: 将清单结果导出到源Bucket所在Region下的其他目标Bu…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSS错误码概述-云淘科技

    当访问OSS出现错误时,OSS会返回Code、Message、RequestId、EC等信息,方便您定位并解决问题。 错误响应头 HTTP/1.1 403 Forbidden Server: AliyunOSS Date: Wed, 09 Nov 2022 08:45:46 GMT Content-Type: application/xml Content-…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSS媒体处理概述-云淘科技

    媒体处理是由智能媒体管理(IMM)提供的对多种视频格式进行转换的处理能力。您可以将原始视频上传保存到阿里云对象存储OSS上,通过OSS的RESTful数据处理接口x-oss-async-process,在任何时间、任何地点、任何互联网设备上对视频进行视频转码等处理。 处理参数 OSS支持直接使用一个或多个参数处理视频等媒体文件,也支持将多个参数封装在一个样式…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。