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. ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序

    当你碰到ORA-12520错误时,如下所示: 英文:ORA-12520: TNS:listener could not find available handler for requested typ ...

  2. 【转】LINUX 5 常用ftp telnet配置

    LINUX 5 常用ftp telnet配置 一.解决远程登陆乱码问题 目标:在xwindow和其console中使用中文界面,在纯console中使用英文 在/etc/profile最后加上一行 e ...

  3. 在Windows2012下配置Mercurial

    所需的安装文件: xampp-win32-1.8.3-4-VC11-installer.exe python-2.7.7.amd64.msi tortoisehg-3.0.1-x64.msi merc ...

  4. 《TCP/IP详解 卷一》读书笔记-----第三章 IP

    1.Network byte order:数据在网络中的传输是按照大端模式来的,即如果需要传递一个四个字节的int变量,先传递最高的字节,然后依次类推.因此无论主机存储数据用的是大端模式还是小端模式, ...

  5. 倍增法-lca codevs 1036 商务旅行

    codevs 1036 商务旅行  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 某首都城市的商人要经常到各城镇去做生意 ...

  6. Codeforces Round #258 D Count Good Substrings --计数

    题意:由a和b构成的字符串,如果压缩后变成回文串就是Good字符串.问一个字符串有几个长度为偶数和奇数的Good字串. 分析:可知,因为只有a,b两个字母,所以压缩后肯定为..ababab..这种形式 ...

  7. 通过JDBC进行简单的增删改查(二)

    本章笔记更易理解和学习,也是我第一次初学的笔记. package javastudy; import java.sql.Connection; import java.sql.DriverManage ...

  8. Linux平台Java调用so库-JNI使用例子

    1.确保gcc编译器已安装 2.编写HelloJNI.java代码,用native声明需要用C实现的函数.如果源程序是包含在package里的话,应该建立同样的文件夹结构,比如/home/swan/t ...

  9. WIN7系统自带截图工具SnippingTool

    在无网络的情况下,无QQ情况下,如何截图?以及如何设置快捷键? 方法 首先,我们在“开始”菜单最上面找到它,如图: 找不到也没关系 C:\Windows\system32\SnippingTool.e ...

  10. js原生选项卡(包含无缝滚动轮播图)一

    原生js选项卡的几种写法,整片文章我会由简及难的描述几种常用的原生选项卡的写法: Improve little by little every day! 1>基本选项卡: 思路:循环中先清除再添 ...