首页 对象存储 开发参考 SDK参考 OSS C# SDK V2(预览版)

OSS C# SDK V2

更新时间: 2025-08-05 18:22:46

GitHubSDK Releases

快速接入

接入OSS C# SDK V2的流程如下:

image

环境准备

  • 适用于.NET Framework 471及以上版本。

  • 适用于.NET Standard 2.0及以上版本。

  • 适用于.NET5.0及以上版本。

  • 如果当前计算环境中不存在所需 .NET 环境或版本过低,请参考以下步骤:

    • 对于.NET Framework:请访问Microsoft 官网下载并安装.NET Framework 4.7.1 或更高版本。

    • 对于.NET Standard:通常 .NET Standard 是由其他.NET实现(如 .NET Framework 或 .NET)支持的,确保您已安装相应的.NET实现即可。

    • 对于.NET:请访问.NET 官网下载并安装.NET 5.0或更高版本。

安装SDK

推荐您使用最新的OSS C# SDK V2版本,确保本文中的代码示例可以正常运行。关于版本功能的更多信息,请参见Releases

通过 NuGet 安装

  • 检查NuGet是否已安装:

    • 确保你的Visual Studio已经安装了NuGet包管理器。如果未安装,可以通过Visual Studio的“工具”->“获取工具和功能”进入Visual Studio Installer,在工作负载中勾选“.NET桌面开发”或者“ASP.NET和Web开发”,这将自动包含NuGet包管理器。

  • 打开项目:

    • 在Visual Studio中新建一个项目或打开已有项目。

  • 访问NuGet程序包管理器:

    • 在菜单栏选择“工具”->“NuGet程序包管理器”->“管理解决方案的NuGet程序包”。

  • 搜索并安装SDK

    • 在NuGet包管理器的“浏览”选项卡中,输入AlibabaCloud.SDK.OSS.V2进行搜索。

    • 在搜索结果中找到AlibabaCloud.SDK.OSS.V2,查看其详细信息,并确保选择最新稳定版本。

    • 点击“安装”按钮来安装该包。等待安装完成。

  • 确认安装成功

    • 安装完成后,可以在解决方案资源管理器中的“引用”下看到AlibabaCloud.SDK.OSS.V2。此时,你就可以在项目中使用这个SDK提供的功能了。

项目引入方式安装

  • 克隆GitHub仓库:

    • 打开命令提示符或Git Bash,执行以下命令来克隆仓库:

      git clone https://github.com/aliyun/alibabacloud-oss-csharp-sdk-v2.git
  • 添加项目到解决方案

    • 在Visual Studio中右键点击解决方案(Solution),“添加”->“现有项目...”。

    • 浏览到克隆下来的源码目录,选择AlibabaCloud.OSS.V2.csproj文件,然后点击“打开”。

  • 添加项目引用

    • 右键点击你的项目,选择“添加”->“引用...”。

    • 在弹出的对话框中切换到“项目”选项卡,找到并勾选AlibabaCloud.OSS.V2项目,点击“确定”。

配置访问凭证

使用 RAM 用户的 AccessKey 配置访问凭证。

  1. RAM 控制台,创建使用永久 AccessKey 访问的 RAM 用户,保存 AccessKey,然后为该用户授予 AliyunOSSFullAccess 权限。

  2. 使用 RAM 用户 AccessKey 配置环境变量。

    Linux

    1. 在命令行界面执行以下命令来将环境变量设置追加到~/.bashrc 文件中。

      echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
      echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
      1. 执行以下命令使变更生效。

        source ~/.bashrc
      2. 执行以下命令检查环境变量是否生效。

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. 在终端中执行以下命令,查看默认Shell类型。

      echo $SHELL
      1. 根据默认Shell类型进行操作。

        Zsh

        1. 执行以下命令来将环境变量设置追加到 ~/.zshrc 文件中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
        2. 执行以下命令使变更生效。

          source ~/.zshrc
        3. 执行以下命令检查环境变量是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

        Bash

        1. 执行以下命令来将环境变量设置追加到 ~/.bash_profile 文件中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
        2. 执行以下命令使变更生效。

          source ~/.bash_profile
        3. 执行以下命令检查环境变量是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. 在CMD中运行以下命令。

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
      1. 运行以下命令,检查环境变量是否生效。

        echo %OSS_ACCESS_KEY_ID%
        echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. 在PowerShell中运行以下命令。

      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
      1. 运行以下命令,检查环境变量是否生效。

        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

初始化客户端

使用地域和访问域名初始化 OSSClient,并运行测试代码。

using System.Text; // 引入System.Text命名空间,用于处理字符编码(如UTF-8编码字符串)
using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var bucket = "your bucket name";  // 必须项,设置目标Bucket名称
var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
var key = "your object key"; // 必须项,指定上传的对象名称。格式(folder/objectName)

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if(endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 待上传的对象内容。示例内容:简单字符串"hello oss!",实际场景中可为文件流、字节数组等
var content = "hello oss!";
// 将字符串转换为UTF-8编码的字节数组,再包装为MemoryStream
// MemoryStream用于在内存中处理数据流,适合小文件上传;大文件建议使用FileStream
var bodyStream = new MemoryStream(Encoding.UTF8.GetBytes(content));

// 调用PutObjectAsync方法异步上传对象(需传入包含Bucket、Key和Body的请求对象)
// 该方法会将bodyStream中的数据上传至指定Bucket的Key路径下
var result = await client.PutObjectAsync(new OSS.Models.PutObjectRequest()
{
    Bucket = bucket,    // 目标Bucket名称
    Key = key,          // 对象在Bucket中的唯一Key 
    Body = bodyStream   // 要上传的内容流(此处为内存中的字符串数据)
});

// 打印上传结果
Console.WriteLine("PutObject done");  // 提示操作完成
Console.WriteLine($"StatusCode: {result.StatusCode}");  // HTTP状态码
Console.WriteLine($"RequestId: {result.RequestId}");  // RequestId,用于阿里云排查问题
Console.WriteLine("Response Headers:");  // 响应头信息
result.Headers.ToList().ForEach(x => Console.WriteLine(x.Key + " : " + x.Value));  // 遍历并打印所有响应头

运行后将会输出上传文件成功的结果:

PutObject done
StatusCode: 200
RequestId: 68808D6D6A91E53037F7AAE9
Response Headers:
Server : AliyunOSS
Date : Wed, 23 Jul 2025 07:21:17 GMT
Connection : keep-alive
x-oss-request-id : 68808D6D6A91E53037F7AAE9
Vary : Origin
ETag : "968205D07B5A124D6ADA9336826C2C90"
x-oss-hash-crc64ecma : 11833582957755287462
x-oss-version-id : CAEQpgEYgYCA3fPQ2MEZIiA2ZmI4NGZkZWQzMWY0ZDZkOTFmMjUxYzRkNGMxODdkZg--
x-oss-server-time : 90
Content-Length : 0
Content-MD5 : loIF0HtaEk1q2pM2gmwskA==

客户端配置

客户端支持哪些配置?

参数名

说明

示例

Region

(必选)请求发送的区域,必选

Configuration.Region = "cn-hangzhou"

Endpoint

访问域名

Configuration.Endpoint = "oss-cn-hangzhou.aliyuncs.com"

RetryMaxAttempts

失败请求的最大重试次数

Configuration.RetryMaxAttempts = 5

Retryer

HTTP请求时的重试实现

Configuration.Retryer = new Retry.DefaultRetryer()

HttpTransport

自定义HTTP客户端

Configuration.HttpTransport = new HttpTransport()

CredentialsProvider

(必选)设置访问凭证

Configuration.CredentialsProvider = new EnvironmentVariableCredentialsProvider()

UsePathStyle

使用路径请求风格,即二级域名请求风格,默认为bucket托管域名

Configuration.UsePathStyle = true

UseCName

是否使用自定义域名访问,默认不使用

Configuration.UseCName = true

ConnectTimeout

建立连接的超时时间,默认值为10 秒

Configuration.ConnectTimeout = TimeSpan.FromSeconds(30)

ReadWriteTimeout

应用读写数据的超时时间,默认值为20 秒

Configuration.ReadWriteTimeout = TimeSpan.FromMinutes(2)

InsecureSkipVerify

是否跳过SSL证书校验,默认检查SSL证书

Configuration.InsecureSkipVerify = true

EnabledRedirect

是否开启HTTP重定向,默认不开启

Configuration.EnabledRedirect = true

ProxyHost

设置代理服务器

Configuration.ProxyHost = "http://proxy.example.com:8080"

SignatureVersion

签名版本,默认值为v4

Configuration.SignatureVersion = "v4"

DisableSsl

不使用https请求,默认使用https

Configuration.DisableSsl = true

UseDualStackEndpoint

是否使用双栈域名访问,默认不使用

Configuration.UseDualStackEndpoint = true

UseAccelerateEndpoint

是否使用传输加速域名访问,默认不使用

Configuration.UseAccelerateEndpoint = true

UseInternalEndpoint

是否使用内网域名访问,默认不使用

Configuration.UseInternalEndpoint = true

DisableUploadCrc64Check

上传时关闭CRC64校验,默认开启CRC64校验

Configuration.DisableUploadCrc64Check = true

DisableDownloadCrc64Check

下载时关闭CRC64校验,默认开启CRC64校验

Configuration.DisableDownloadCrc64Check = true

AdditionalHeaders

指定额外的签名请求头,V4签名下有效

Configuration.AdditionalHeaders = new List<string> { "x-oss-meta-*" }

UserAgent

指定额外的User-Agent信息

Configuration.UserAgent = "MyApp/1.0"

使用自定义域名

使用OSS默认域名访问时,可能会出现文件禁止访问、文件无法预览等问题;通过绑定自定义域名至Bucket默认域名,不仅支持浏览器直接预览文件,还可结合CDN加速分发。

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = "https://www.example-***.com";  // 必须项,请填写您的自定义域名。例如www.example-***.com

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 请注意,设置true开启CNAME选项,否则无法使用自定义域名
cfg.UseCName = true;

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...

使用内网域名

使用内网域名访问同地域的OSS资源,可以降低流量成本并提高访问速度。

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = "https://oss-cn-hangzhou-internal.aliyuncs.com";  // 可选项,指定访问OSS服务的内网域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou-internal.aliyuncs.com

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 您也可以无需指定内网endpoint,直接设置cfg.UseInternalEndpoint = true配置内网域名
// cfg.UseInternalEndpoint = true;

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...

使用传输加速域名

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = "https://oss-accelerate.aliyuncs.com";  // 可选项,填写Bucket所在地域对应的传输加速Endpoint。以华东1(杭州)为例,Endpoint填写为'https://oss-accelerate.aliyuncs.com'

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 您也可以无需指定传输加速endpoint,直接设置cfg.UseAccelerateEndpoint = true配置传输加速域名
// cfg.UseAccelerateEndpoint = true;

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...	

使用专有域

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = "https://service.corp.example.com";  // 必须项,请填写您的专有域。例如:https://service.corp.example.com

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...	

使用金融云域名

以下是使用金融云域名配置OSSClient的示例代码。

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou"; // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
// 必须项, 填写Bucket所在地域对应的内网Endpoint。以华东1 金融云为例,Endpoint填写为'https://oss-cn-hzjbp-a-internal.aliyuncs.com',
// 如需指定为http协议,请在指定域名时填写为'http://oss-cn-hzjbp-a-internal.aliyuncs.com'
var endpoint = "https://oss-cn-hzjbp-a-internal.aliyuncs.com";

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...	

使用政务云域名

以下是使用政务云域名配置OSSClient的示例代码。

using OSS = AlibabaCloud.OSS.V2; // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-north-2-gov-1"; // 必须项,设置Bucket所在的区域(Region)。以华北2 阿里政务云1为例,Region填写为cn-north-2-gov-1
// 必须项,填写Bucket所在地域对应的内网Endpoint。以华北2 阿里政务云1为例,Endpoint填写为'https://oss-cn-north-2-gov-1-internal.aliyuncs.com',
// 如需指定为http协议,请在指定域名时填写为'http://oss-cn-north-2-gov-1-internal.aliyuncs.com'
var endpoint = "https://oss-cn-north-2-gov-1-internal.aliyuncs.com";

// 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
var cfg = OSS.Configuration.LoadDefault();
// 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
// 设置配置的Bucket区域
cfg.Region = region;
// 若已指定了endpoint,则覆盖默认的endpoint
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 使用创建好的client执行后续操作...	

访问凭证配置

OSS 提供多种凭证初始化方式。请根据您的认证和授权需求选择合适的初始化方式。

如何选择访问凭证?

凭证提供者初始化方式

适用场景

是否需要提供前置的AK或STS Token

底层实现基于的凭证

凭证有效期

凭证轮转或刷新方式

使用RAM用户的AK

部署运行在安全、稳定且不易受外部攻击的环境的应用程序,无需频繁轮转凭证就可以长期访问云服务

AK

长期

手动轮转

使用STS临时访问凭证

部署运行在不可信的环境的应用程序,希望能控制访问的有效期、权限

STS Token

临时

手动刷新

使用RAMRoleARN

需要授权访问云服务,例如跨阿里云账号访问云服务的应用程序

STS Token

临时

自动刷新

使用ECSRAMRole

部署运行在阿里云的ECS实例、ECI实例、容器服务Kubernetes版的Worker节点中的应用程序

STS Token

临时

自动刷新

使用OIDCRoleARN

部署运行在阿里云的容器服务Kubernetes版的Worker节点中的不可信应用程序

STS Token

临时

自动刷新

使用自定义访问凭证

如果以上凭证配置方式都不满足要求时,您可以自定义获取凭证的方式

自定义

自定义

自定义

自定义

使用RAM用户的AK

如果您的应用程序部署运行在安全、稳定且不易受外部攻击的环境中,需要长期访问您的OSS,且不能频繁轮转凭证时,您可以使用阿里云主账号或RAM用户的AK(Access Key ID、Access Key Secret)初始化凭证提供者。需要注意的是,该方式需要您手动维护一个AK,存在安全性风险和维护复杂度增加的风险。

警告
  • 阿里云账号拥有资源的全部权限,AK一旦泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的RAM用户的AK。

  • 如需创建RAM用户的AK,请直接访问创建AccessKey。RAM用户的Access Key ID、Access Key Secret信息仅在创建时显示,请及时保存,如若遗忘请考虑创建新的AK进行轮换。

环境变量

  1. 使用RAM用户AccessKey配置环境变量。

    Linux

    1. 在命令行界面执行以下命令来将环境变量设置追加到~/.bashrc 文件中。

      echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
      echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
      1. 执行以下命令使变更生效。

        source ~/.bashrc
      2. 执行以下命令检查环境变量是否生效。

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. 在终端中执行以下命令,查看默认Shell类型。

      echo $SHELL
      1. 根据默认Shell类型进行操作。

        Zsh

        1. 执行以下命令来将环境变量设置追加到 ~/.zshrc 文件中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
        2. 执行以下命令使变更生效。

          source ~/.zshrc
        3. 执行以下命令检查环境变量是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

        Bash

        1. 执行以下命令来将环境变量设置追加到 ~/.bash_profile 文件中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
        2. 执行以下命令使变更生效。

          source ~/.bash_profile
        3. 执行以下命令检查环境变量是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. 在CMD中运行以下命令。

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
      1. 运行以下命令,检查环境变量是否生效。

        echo %OSS_ACCESS_KEY_ID%
        echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. 在PowerShell中运行以下命令。

      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
      1. 运行以下命令,检查环境变量是否生效。

        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

  2. 参考上述方式修改系统环境变量后,请重启或刷新您的编译运行环境,包括IDE、命令行界面、其他桌面应用程序及后台服务,以确保最新的系统环境变量成功加载。

  3. 使用环境变量来传递凭证信息。

    using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用
    
    var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
    var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
    
    // 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
    var cfg = OSS.Configuration.LoadDefault();
    // 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET)
    cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
    // 设置配置的Bucket区域
    cfg.Region = region;   
    // 若已指定了endpoint,则覆盖默认的endpoint 
    if(endpoint != null) 
    {
        cfg.Endpoint = endpoint;
    } 
    
    // 使用配置信息创建OSS客户端实例
    using var client = new OSS.Client(cfg);

静态凭证

以下示例代码展示了如何对访问凭据直接进行硬编码,显式设置要使用的访问密钥。

警告

请勿将访问凭据嵌入到生产环境的应用程序中,此方法仅用于测试目的。

using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com

var cfg = OSS.Configuration.LoadDefault();

// 填写RAM账号AccessKey ID和AccessKey Secret。
var access_key_id = "yourAccessKeyId";
var access_key_secret = "yourAccessKeySecret";
// 创建静态凭证提供者,显式设置RAM账号密钥AccessKey ID和AccessKey Secret
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvider(access_key_id,access_key_secret);

// 设置配置的Bucket区域
cfg.Region = region;   
// 若已指定了endpoint,则覆盖默认的endpoint 
if(endpoint != null) 
{
    cfg.Endpoint = endpoint;
} 

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

使用STS临时访问凭证

如果您的应用程序需要临时访问OSS,您可以使用通过STS服务获取的临时身份凭证(Access Key ID、Access Key Secret和Security Token)初始化凭证提供者。需要注意的是,该方式需要您手动维护一个STS Token,存在安全性风险和维护复杂度增加的风险。此外,如果您需要多次临时访问OSS,您需要手动刷新STS Token。

重要

环境变量

  1. 使用临时身份凭证设置环境变量。

    Mac OS X/Linux/Unix

    警告
    • 请注意,此处使用的是通过STS服务获取的临时身份凭证(Access Key ID、Access Key Secret和Security Token),而非RAM用户的Access Key和Access Key Secret。

    • 请注意区分STS服务获取的Access Key ID以STS开头,例如“STS.L4aBSCSJVMuKg5U1****”。

    export OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID>
    export OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET>
    export OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN>

    Windows

    警告
    • 请注意,此处使用的是通过STS服务获取的临时身份凭证(Access Key ID、Access Key Secret和Security Token),而非RAM用户的AK(Access Key ID、Access Key Secret)。

    • 请注意区分STS服务获取的Access Key ID以STS开头,例如“STS.L4aBSCSJVMuKg5U1****”。

    set OSS_ACCESS_KEY_ID=<STS_ACCESS_KEY_ID>
    set OSS_ACCESS_KEY_SECRET=<STS_ACCESS_KEY_SECRET>
    set OSS_SESSION_TOKEN=<STS_SECURITY_TOKEN>
  2. 通过环境变量来传递凭证信息。

    using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用
    
    var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
    var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
    
    // 加载OSS SDK的默认配置,此配置会自动从环境变量中读取凭证信息(如AccessKey)
    var cfg = OSS.Configuration.LoadDefault();
    // 显式设置使用环境变量获取凭证,用于身份验证(格式:OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、OSS_SESSION_TOKEN)
    cfg.CredentialsProvider = new OSS.Credentials.EnvironmentVariableCredentialsProvider();
    // 设置配置的Bucket区域
    cfg.Region = region;   
    // 若已指定了endpoint,则覆盖默认的endpoint 
    if(endpoint != null) 
    {
        cfg.Endpoint = endpoint;
    } 
    
    // 使用配置信息创建OSS客户端实例
    using var client = new OSS.Client(cfg);

静态凭证

以下示例代码展示了如何对访问凭据直接进行硬编码,显式设置要使用的临时访问密钥。

警告

请勿将访问凭据嵌入到生产环境的应用程序中,此方法仅用于测试目的。

using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com

var cfg = OSS.Configuration.LoadDefault();

// 填写获取的临时访问密钥AccessKey ID和AccessKey Secret,非阿里云账号AccessKey ID和AccessKey Secret。
// 请注意区分STS服务获取的Access Key ID是以STS开头,如下所示。
var access_key_id = "STS.****************";
var access_key_secret = "yourAccessKeySecret";
// 填写获取的STS安全令牌(SecurityToken)。
var securityToken = "yourSecurityToken";
// 创建静态凭证提供者,显式设置临时访问密钥AccessKey ID和AccessKey Secret,以及STS安全令牌
cfg.CredentialsProvider = new OSS.Credentials.StaticCredentialsProvide(access_key_id, access_key_secret, securityToken);

// 设置配置的Bucket区域
cfg.Region = region;   
// 若已指定了endpoint,则覆盖默认的endpoint 
if(endpoint != null) 
{
    cfg.Endpoint = endpoint;
} 

// 使用配置信息创建OSS客户端实例
using var client = new OSS.Client(cfg);

使用RAMRoleARN

如果您的应用程序需要授权访问OSS,例如跨阿里云账号访问OSS,您可以使用RAMRoleARN初始化凭证提供者。该方式底层实现是STS Token。通过指定RAM角色的ARN(Alibabacloud Resource Name),Credentials工具会前往STS服务获取STS Token,并在会话到期前调用AssumeRole接口申请新的STS Token。此外,您还可以通过为policy赋值来限制RAM角色到一个更小的权限集合。

重要
  • 阿里云账号拥有资源的全部权限,AK一旦泄露,会给系统带来巨大风险,不建议使用。推荐使用最小化授权的RAM用户的AK。

  • 如需创建RAM用户的AK,请直接访问创建AccessKey。RAM用户的Access Key ID、Access Key Secret信息仅在创建时显示,请及时保存,如若遗忘请考虑创建新的AK进行轮换。

  • 如需获取RAMRoleARN,请直接访问CreateRole - 创建角色

  1. 添加Aliyun.Credentials依赖。

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  2. 配置AK和RAMRoleARN作为访问凭证。

    using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用
    
    var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
    var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
    
    // 阿里云凭证配置 - 使用RAM角色ARN方式
    // 更多凭证类型示例参考:https://github.com/aliyun/credentials-csharp
    var credConfig = new Aliyun.Credentials.Models.Config()
    {
        // 指定凭证类型为RAM角色ARN
        Type = "ram_role_arn",
        // 从环境变量读取AccessKeyId
        AccessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID"),
        // 从环境变量读取AccessKeySecret
        AccessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET"),
        // RAM角色ARN,格式:acs:ram::USER_Id:role/ROLE_NAME
        // 也可通过环境变量ALIBABA_CLOUD_ROLE_ARN设置
        RoleArn = "acs:ram::***************:role/******",
        // 角色会话名称,用于标识当前会话
        RoleSessionName = "<RoleSessionName>",
        // 可选参数,限制STS令牌的权限范围
        Policy = "<Policy>",
        // 可选参数,设置STS令牌的有效期(秒)
        RoleSessionExpiration = 3600,
    };
    
    // 创建凭证客户端实例,用于获取临时访问凭证
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // 将通用凭证转换为OSS SDK所需的凭证提供器
    var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() =>
    {
        // 获取临时凭证
        var credential = credClient.GetCredential();
    
        // 构造OSS SDK所需的凭证对象
        return new OSS.Credentials.Credentials(
            credential.AccessKeyId,      // 临时AccessKey ID
            credential.AccessKeySecret,  // 临时AccessKey Secret
            credential.SecurityToken);   // 安全令牌(STS Token)
    });
    
    // 加载OSS SDK的默认配置
    // 默认从环境变量中加载凭证信息(此处已被自定义凭证覆盖)
    var cfg = OSS.Configuration.LoadDefault();
    // 设置OSS区域
    cfg.Region = region;
    // 设置自定义凭证提供器
    cfg.CredentialsProvider = credentialsProvider;
    
    // 如果指定了自定义endpoint,则覆盖默认设置
    if (endpoint != null)
    {
        cfg.Endpoint = endpoint;
    }
    
    // 使用配置创建OSS客户端实例
    using var client = new OSS.Client(cfg);
    
    // 创建ListBuckets操作的分页器
    // 用于获取当前账号下的所有OSS存储桶
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // 异步迭代存储桶分页结果
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // 遍历每个页面中的存储桶
        foreach (var bucket in page.Buckets ?? [])
        {
            // 输出存储桶信息:名称、存储类型和位置
            Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
        }
    }
    

使用ECSRAMRole

如果您的应用程序运行在ECS实例、ECI实例、容器服务Kubernetes版的Worker节点中,建议您使用ECSRAMRole初始化凭证提供者。该方式底层实现是STS Token。ECSRAMRole允许您将一个角色关联到ECS实例、ECI实例或容器服务 Kubernetes 版的Worker节点,实现在实例内部自动刷新STS Token。该方式无需您提供一个AK或STS Token,消除了手动维护AK或STS Token的风险。如何获取ECSRAMRole,请参见CreateRole - 创建角色

  1. 添加Aliyun.Credentials依赖。

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  2. 配置ECSRAMRole作为访问凭证。

    using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用
    using Aliyun.Credentials.Models;
    
    var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
    var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
    
    // 创建凭证配置,使用ECS RAM角色方式认证
    var credConfig = new Aliyun.Credentials.Models.Config()
    {
        // 凭证类型
        Type = "ecs_ram_role",
        // 账户RoleName,非必填,不填则自动获取,建议设置,可以减少请求up to reduce requests
        RoleName = "<RoleName>"
    };
    
    // 创建凭证客户端,用于获取临时访问凭证
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // 将通用凭证转换为OSS SDK所需的凭证提供器
    var credentialsProvider = new OSS.Credentials.CredentialsProviderFunc(() =>
    {
        // 获取临时凭证
        var credential = credClient.GetCredential();
    
        // 构造OSS SDK所需的凭证对象
        return new OSS.Credentials.Credentials(
            credential.AccessKeyId,      // 临时AccessKey ID
            credential.AccessKeySecret,  // 临时AccessKey Secret
            credential.SecurityToken);   // 安全令牌(STS Token)
    });
    
    // 加载OSS客户端的默认配置
    var cfg = OSS.Configuration.LoadDefault();
    
    // 设置OSS区域
    cfg.Region = region;
    
    // 设置自定义凭证提供器
    cfg.CredentialsProvider = credentialsProvider;
    
    // 如果指定了自定义endpoint,则覆盖默认设置
    if (endpoint != null)
    {
        cfg.Endpoint = endpoint;
    }
    
    // 使用配置创建OSS客户端实例
    using var client = new OSS.Client(cfg);
    
    // 用于获取当前角色账号下的所有OSS存储桶
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // 异步迭代存储桶分页结果
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // 遍历每个页面中的存储桶
        foreach (var bucket in page.Buckets ?? [])
        {
            // 输出存储桶信息:名称、存储类型和位置
            Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
        }
    }

使用OIDCRoleARN

容器服务Kubernetes版中设置了Worker节点RAM角色后,对应节点内的Pod中的应用也就可以像ECS上部署的应用一样,通过元数据服务(Meta Data Server)获取关联角色的STS Token。但如果容器集群上部署的是不可信的应用(比如部署您的客户提交的应用,代码也没有对您开放),您可能并不希望它们能通过元数据服务获取Worker节点关联实例RAM角色的STS Token。为了避免影响云上资源的安全,同时又能让这些不可信的应用安全地获取所需的STS Token,实现应用级别的权限最小化,您可以使用RRSA(RAM Roles for Service Account)功能。该方式底层实现是STS Token。阿里云容器集群会为不同的应用Pod创建和挂载相应的服务账户OIDC Token文件,并将相关配置信息注入到环境变量中,Credentials工具通过获取环境变量的配置信息,调用STS服务的AssumeRoleWithOIDC接口换取绑定角色的STS Token。该方式无需您提供一个AK或STS Token,消除了手动维护AK或STS Token的风险。详情请参见通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离

  1. 添加Aliyun.Credentials依赖。

    dotnet add package Aliyun.Credentials --source https://api.nuget.org/v3/index.json
  1. 配置OIDCRoleArn作为访问凭证。

    using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用
    using Aliyun.Credentials.Models;
    
    var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
    var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com
    
    // 创建凭证配置,使用ECS RAM角色方式认证
    var credConfig = new Aliyun.Credentials.Models.Config()
    {
       // 凭证类型
        Type = "oidc_role_arn",
        // 格式: acs:ram::用户Id:role/角色名
        // roleArn 可不设,但需要通过设置 ALIBABA_CLOUD_ROLE_ARN 来代替
        RoleArn = "<RoleArn>",
        // 格式: acs:ram::用户Id:oidc-provider/OIDC身份提供商名称
        // OIDCProviderArn 可不设,但需要通过设置 ALIBABA_CLOUD_OIDC_PROVIDER_ARN 来代替
        OIDCProviderArn = "<OIDCProviderArn>",
        // 格式: path
        // OIDCTokenFilePath 可不设,但需要通过设置 ALIBABA_CLOUD_OIDC_TOKEN_FILE 来代替
        OIDCTokenFilePath = "/Users/xxx/xxx",
        // 角色会话名称
        RoleSessionName = "<RoleSessionName>",
        // 可选, 限制 STS Token 的权限
        Policy = "<Policy>",
        // 可选, 限制 STS Token 的有效时间
        RoleSessionExpiration = 3600,
    };
    
    // 创建凭证客户端,用于获取临时访问凭证
    var credClient = new Aliyun.Credentials.Client(credConfig);
    
    // 将通用凭证转换为OSS SDK所需的凭证提供器
    var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() =>
    {
        // 获取临时凭证
        var credential = credClient.GetCredential();
    
        // 构造OSS SDK所需的凭证对象
        return new OSS.Credentials.Credentials(
            credential.AccessKeyId,      // 临时AccessKey ID
            credential.AccessKeySecret,  // 临时AccessKey Secret
            credential.SecurityToken);   // 安全令牌(STS Token)
    });
    
    // 加载OSS客户端的默认配置
    var cfg = OSS.Configuration.LoadDefault();
    
    // 设置OSS区域
    cfg.Region = region;
    
    // 设置自定义凭证提供器
    cfg.CredentialsProvider = credentialsProvider;
    
    // 如果指定了自定义endpoint,则覆盖默认设置
    if (endpoint != null)
    {
        cfg.Endpoint = endpoint;
    }
    
    // 使用配置创建OSS客户端实例
    using var client = new OSS.Client(cfg);
    
    // 用于获取当前角色账号下的所有OSS存储桶
    var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());
    
    // 异步迭代存储桶分页结果
    Console.WriteLine("Buckets:");
    await foreach (var page in paginator.IterPageAsync())
    {
        // 遍历每个页面中的存储桶
        foreach (var bucket in page.Buckets ?? [])
        {
            // 输出存储桶信息:名称、存储类型和位置
            Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
        }
    }

使用自定义访问凭证

当以上凭证配置方式不满足要求时,您可以自定义获取凭证的方式。

通过Credentials.CredentialsProvideFunc接口

using OSS = AlibabaCloud.OSS.V2;  // 为阿里云OSS SDK创建别名,简化后续使用

var region = "cn-hangzhou";  // 必须项,设置Bucket所在的区域(Region)。以华东1(杭州)为例,Region填写为cn-hangzhou
var endpoint = null as string;  // 可选项,指定访问OSS服务的域名。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com

// 显式设置访问凭证,仅作演示用例。实际项目中您可以通过获取环境变量方式获取
var AccessKeyId = "your AccessKeyId";  // 必须项,RAM用户或STS临时访问凭证AccessKeyId
var AccessKeySecret = "your AccessKeySecret";  // 必须项,RAM用户或STS临时访问凭证AccessKeySecret
// var SecurityToken = "your STS Token";  // 可选项,使用临时访问凭证可配置此变量

// 将通用凭证转换为OSS SDK所需的凭证提供器
var credentialsProvider = new OSS.Credentials.CredentialsProvideFunc(() =>
{
   
    // 使用长期凭证构造OSS SDK所需的凭证对象 
    return new OSS.Credentials.Credentials(
        AccessKeyId,        // RAM用户AccessKey ID
        AccessKeySecret);   // RAM用户AccessKey Secret

    // 使用临时访问凭证构造OSS SDK所需的凭证对象 
    // return new OSS.Credentials.Credentials(
    //     AccessKeyId,      // 临时AccessKey ID
    //     AccessKeySecret,  // 临时AccessKey Secret
    //     SecurityToken);   // 安全令牌(STS Token)
});

// 加载OSS客户端的默认配置
var cfg = OSS.Configuration.LoadDefault();

// 设置OSS区域
cfg.Region = region;

// 设置自定义凭证提供器
cfg.CredentialsProvider = credentialsProvider;

// 如果指定了自定义endpoint,则覆盖默认设置
if (endpoint != null)
{
    cfg.Endpoint = endpoint;
}

// 使用配置创建OSS客户端实例
using var client = new OSS.Client(cfg);

// 用于获取当前角色账号下的所有OSS存储桶
var paginator = client.ListBucketsPaginator(new OSS.Models.ListBucketsRequest());

// 异步迭代存储桶分页结果
Console.WriteLine("Buckets:");
await foreach (var page in paginator.IterPageAsync())
{
    // 遍历每个页面中的存储桶
    foreach (var bucket in page.Buckets ?? [])
    {
        // 输出存储桶信息:名称、存储类型和位置
        Console.WriteLine($"Bucket:{bucket.Name}, {bucket.StorageClass}, {bucket.Location}");
    }
}

示例代码

OSS C# SDK V2提供丰富的示例代码供参考或直接使用。

示例内容

GitHub示例文件

创建存储空间(C# SDK V2)

PutBucket.cs

列举存储空间(C# SDK V2)

ListBuckets.cs

判断存储空间是否存在(C# SDK V2)

IsBucketExist.cs

获取存储空间的地域(C# SDK V2)

GetBucketLocation.cs

获取存储空间的信息(C# SDK V2)

GetBucketInfo.cs

获取存储空间的存储容量(C# SDK V2)

GetBucketStat.cs

删除存储空间(C# SDK V2)

DeleteBucket.cs

简单上传(C# SDK V2)

PutObject.cs

追加上传(C# SDK V2)

AppendObject.cs

分片上传(C# SDK V2)

MultipartUpload.cs

表单上传(C# SDK V2)

PostObject.cs

使用预签名URL上传(C# SDK V2)

PresignPutObject.cs

下载文件到内存(C# SDK V2)

GetObject.cs

下载文件到本地(C# SDK V2)

GetObjectToFile.cs

使用预签名URL下载(C# SDK V2)

PresignGetObject.cs

拷贝对象(C# SDK V2)

CopyObject.cs

判断文件是否存在(C# SDK V2)

IsObjectExist.cs

列举文件(C# SDK V2)

ListObjects.cs

删除文件(C# SDK V2)

DeleteObject.cs

管理软链接(C# SDK V2)

设置对象标签(C# SDK V2)

PutObjectTagging.cs

获取对象标签(C# SDK V2)

GetObjectTagging.cs

删除对象标签(C# SDK V2)

DeleteObjectTagging.cs

管理存储空间读写权限(C# SDK V2)

管理文件访问权限(C# SDK V2)

管理版本控制(C# SDK V2)

同步处理(C# SDK V2)

ProcessObject.cs

异步处理(C# SDK V2)

AsyncProcessObject.cs

上一篇: 常见问题 下一篇: 存储空间(C# SDK V2)
阿里云首页 对象存储 相关技术圈