.NET SDK下载文件

发布日期:2025-01-03 18:26    点击次数:177
默认情况下,在受版本控制的存储空间(Bucket)中调用GetObject接口仅返回文件(Object)的当前版本。背景信息注意事项本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见初始化。要下载文件,您必须有oss:GetObject权限。具体操作,请参见为RAM用户授权自定义的权限策略。示例代码以下代码用于下载文件。using System; using System.IO; using Aliyun.OSS; namespace Samples { public class Program { public static void Main(string[] args) { // yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。 var endpoint = "https://oss-cn-hangzhou.aliyuncs.com"; // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量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"; // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。 var downloadFilename = "D:\\localpath\\examplefile.txt"; var versionid = "yourArchiveObjectVersionid"; // 创建OSSClient实例。 var client = new OssClient(endpoint, accessKeyId, accessKeySecret); try { // 下载文件到流。OssObject包含了文件的各种信息,如文件所在的存储空间、文件名、元数据以及一个输入流。 var request = new GetObjectRequest(bucketName, objectName) { // 指定Object的版本ID。 VersionId = versionid }; var obj = client.GetObject(request); 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, vesionid:{0}", versionid); } catch (Exception ex) { Console.WriteLine("Get object failed. {0}", ex.Message); } } } }相关文档关于下载文件的API接口说明,请参见GetObject。

上一篇:没有了
下一篇:过敏源于尼安德特人?