1.引入SDK bin文件,下载地址:https://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/internal/oss/0.0.4/assets/sdk/OSS_SDK_DOTNET_2_3_0.zip?spm=5176.doc32085.2.3.dH1Os6&file=OSS_SDK_DOTNET_2_3_0.zip
2.源代码: using System;
using System.Collections.Generic;
using Aliyun.OSS; namespace TaoYe
{
/// <summary>
/// 快速入门示例程序   
/// </summary>
public static class SimpleSamples
{
private const string _accessKeyId = "<your AccessKeyId>";
private const string _accessKeySecret = "<your AccessKeySecret>";
private const string _endpoint = "<valid host name>"; private const string _bucketName = "<your bucket name>";
private const string _key = "<your key>";
private const string _fileToUpload = "<your local file path>"; private static OssClient _client = new OssClient(_endpoint, _accessKeyId, _accessKeySecret); public static void Main(string[] args)
{
CreateBucket();
SetBucketAcl();
GetBucketAcl(); PutObject();
ListObjects();
GetObject();
DeleteObject(); // DeleteBucket(); Console.WriteLine("Press any key to continue . . . ");
Console.ReadKey(true);
} /// <summary>
/// 创建一个新的存储空间
/// </summary>
private static void CreateBucket()
{
try
{
var result = _client.CreateBucket(_bucketName);
Console.WriteLine("创建存储空间{0}成功", result.Name);
}
catch (Exception ex)
{
Console.WriteLine("创建存储空间失败. 原因:{0}", ex.Message);
}
} /// <summary>
/// 上传一个新文件
/// </summary>
private static void PutObject()
{
try
{
_client.PutObject(_bucketName, _key, _fileToUpload);
Console.WriteLine("上传文件成功");
}
catch (Exception ex)
{
Console.WriteLine("上传文件失败.原因: {0}", ex.Message);
}
} /// <summary>
/// 列出存储空间内的所有文件
/// </summary>
private static void ListObjects()
{
try
{
var keys = new List<string>();
ObjectListing result = null;
string nextMarker = string.Empty; /// 由于ListObjects每次最多返回100个结果,所以,这里需要循环去获取,直到返回结果中IsTruncated为false
do
{
var listObjectsRequest = new ListObjectsRequest(_bucketName)
{
Marker = nextMarker,
MaxKeys = 100
};
result = _client.ListObjects(listObjectsRequest); foreach (var summary in result.ObjectSummaries)
{
keys.Add(summary.Key);
} nextMarker = result.NextMarker;
} while (result.IsTruncated); Console.WriteLine("列出存储空间中的文件");
foreach (var key in keys)
{
Console.WriteLine("文件名称:{0}", key);
}
}
catch (Exception ex)
{
Console.WriteLine("列出存储空间中的文件失败.原因: {0}", ex.Message);
} } /// <summary>
/// 下载文件
/// </summary>
private static void GetObject()
{
try
{
var result = _client.GetObject(_bucketName, _key);
Console.WriteLine("下载的文件成功,名称是:{0},长度:{1}", result.Key, result.Metadata.ContentLength);
}
catch (Exception ex)
{
Console.WriteLine("下载文件失败.原因:{0}", ex.Message);
}
} /// <summary>
/// 删除文件
/// </summary>
private static void DeleteObject()
{
try
{
_client.DeleteObject(_bucketName, _key);
Console.WriteLine("删除文件成功");
}
catch (Exception ex)
{
Console.WriteLine("删除文件失败.原因: {0}", ex.Message);
}
} /// <summary>
/// 获取存储空间ACL的值
/// </summary>
private static void GetBucketAcl()
{
try
{
var result = _client.GetBucketAcl(_bucketName); foreach (var grant in result.Grants)
{
Console.WriteLine("获取存储空间权限成功,当前权限:{0}", grant.Permission.ToString());
}
}
catch (Exception ex)
{
Console.WriteLine("获取存储空间权限失败.原因: {0}", ex.Message);
}
} /// <summary>
/// 设置存储空间ACL的值
/// </summary>
private static void SetBucketAcl()
{
try
{
_client.SetBucketAcl(_bucketName, CannedAccessControlList.PublicRead);
Console.WriteLine("设置存储空间权限成功");
}
catch (Exception ex)
{
Console.WriteLine("设置存储空间权限失败. 原因:{0}", ex.Message);
}
} /// <summary>
/// 删除存储空间
/// </summary>
private static void DeleteBucket()
{
try
{
_client.DeleteBucket(_bucketName);
Console.WriteLine("删除存储空间成功");
}
catch (Exception ex)
{
Console.WriteLine("删除存储空间失败", ex.Message);
}
}
}
} 关于: https://help.aliyun.com/document_detail/32085.html?spm=5176.doc32086.6.268.ahRddG (API文档的原文地址)
_accessKeyId 和 _accessKeySecret 是管理控制台里的key-value(需要注意别暴露在外面)
_endpoint 是域名,OSS控制台里能绑定自己的域名,没有自己的域名也无妨,默认是阿里云提供的域名地址
_bucketName 是OSS里面的文件夹名
_key是需要存储的文件名
_fileToUpload则是文件路径

以上,能实现简单的OSS使用。
 
 
 
 

阿里云OSS NET SDK 引用示范程序的更多相关文章

  1. 使用visual studio 2015调用阿里云oss .net sdk 2.2的putobject接口抛出outofmemory异常

    问题描述: 使用阿里云oss .net sdk 2.2版本,使用putobject接口上传文件时,抛出outofmemory异常. 原因分析: 上传时,用于准备上传的数据缓冲区内存分配失败.与应用软件 ...

  2. thinkphp使用阿里云OSS最新SDK,文件部署

    这文章是建立在你已经注册号阿里云的OSS,和创建好Bucket前提下: 其实阿里云的帮助与文档写的很详细,这里只说一下源码方式 1.phpsdk下载地址(摘自阿里云OSS的帮助与文档)(也有我自己下载 ...

  3. 图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)

    当我们从网络中获取一个URL的图片我们要存储到本地或者是私有的云时,我们可以这样操作  把url中的图片文件下载到本地(或者上传到私有云中)  public String uploadUrlToOss ...

  4. 阿里云oss上传图片

    1.首先我们要下载阿里云oss的sdk包:(可以下载原版的,改过的通用版在本人的百度云,嘎嘎嘎~) 2.下载好之后放到项目文件目录里面 3.要在需要的控制器引用这个sdk文件例如: include(& ...

  5. Windows环境下用C#编程将文件上传至阿里云OSS笔记

    Windows环境下用C#编程将文件上传至阿里云OSS笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/detai ...

  6. laravel下使用阿里云oss上传图片

    对小公司而言,使用阿里云oss比直接买硬盘要划算的多,不管从存储性价比上还是从网速负载上.最近因为公司的项目有比较大的图片存储访问需求,所以决定使用阿里云的oss. 在研究了一下以后,摆着不自己造轮子 ...

  7. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

  8. iOS使用阿里云OSS对象存储 (SDK 2.1.1)

    最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...

  9. 快速上手阿里云oss SDK

    使用阿里云oss SDK 依赖安装: pip install oss2 pip install aliyun-python-sdk-sts 版本最好是 2.7.5 或以上 如果要开启 crc64 循环 ...

随机推荐

  1. MongoDB学习笔记——集合管理

    创建集合 使用db.createCollection(name, options) 方法创建集合 name 所创建的集合名称必选! options 可选.指定有关内存大小及索引的选项 db.creat ...

  2. MyCat 学习笔记 第十篇.数据分片 之 ER分片

    1 应用场景 这篇来说下mycat中自带的er关系分片,所谓er关系分片即可以理解为有关联关系表之间数据分片.类似于订单主表与订单详情表间的分片存储规则. 本文所说的er分片分为两种: a. 依据主键 ...

  3. mysql大小写问题

    以前做企业项目的时候,用的都是oracle数据库,在新公司项目用的是mysql,有关mysql大小写的问题 1   windows下默认mysql是不区分大小写的,要想让其支持大小写.更改方法 在my ...

  4. Android开发中 .9.png格式图形设计:

    Android .9.png设计 宿舍大神在做android项目,有幸得知.9.png的图形格式. 不知道大家是否注意过聊天气泡和锁屏时随着你文字的增多和你的滑动而跟着变化并且分辨率没有变低的图形?是 ...

  5. paypal IPN 接口返回INVALID参数可能问题

    工作于浏览器Chrome时,登录IPN Simulator页发送测试数据,payment_date栏位值中出现乱码,导致无法返回正确的VERIFIED,在此记录.

  6. redis unwatch discard

    UNWATCH UNWATCH 取消 WATCH 命令对所有 key 的监视. 如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行UNWATC ...

  7. shell script 学习笔记-----shell变量

    1.在赋值语句name=value中不能存在空格,例如:name = value这样的形式会被认为是三个变量,因为本质上来说,脚本的内容就是传给shell程序的变量,而变量之间是通过空格区分的.如果想 ...

  8. Unity-WIKI 之 DebugLine

    脚本功能 在Unity中要使用画线功能,需要添加LineRenderer 组件,或打开Gizmos功能,下面这个组件为开发带来了方便 功能预览 搭建步骤 1.创建“Plugins” 文件夹 2.在“P ...

  9. Unity 2D Touch Movement

    Demo试玩(Kongregate既然也有广告时间了 --!)http://www.kongregate.com/games/zhaoqingqing/2d-touch-movement 操作步骤 1 ...

  10. UltraISO制作U盘启动盘安装Win7/10系统攻略

    UltraISO制作U盘启动盘安装Win7/9/10系统攻略 U盘安装好处就是不用使用笨拙的光盘,光盘还容易出现问题,无法读取的问题.U盘体积小,携带方便,随时都可以制作系统启动盘. U盘建议选择8G ...