阿里云OSS NET SDK 引用示范程序
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 引用示范程序的更多相关文章
- 使用visual studio 2015调用阿里云oss .net sdk 2.2的putobject接口抛出outofmemory异常
问题描述: 使用阿里云oss .net sdk 2.2版本,使用putobject接口上传文件时,抛出outofmemory异常. 原因分析: 上传时,用于准备上传的数据缓冲区内存分配失败.与应用软件 ...
- thinkphp使用阿里云OSS最新SDK,文件部署
这文章是建立在你已经注册号阿里云的OSS,和创建好Bucket前提下: 其实阿里云的帮助与文档写的很详细,这里只说一下源码方式 1.phpsdk下载地址(摘自阿里云OSS的帮助与文档)(也有我自己下载 ...
- 图片的URL上传至阿里云OSS操作(微信小程序二维码返回的二进制上传到OSS)
当我们从网络中获取一个URL的图片我们要存储到本地或者是私有的云时,我们可以这样操作 把url中的图片文件下载到本地(或者上传到私有云中) public String uploadUrlToOss ...
- 阿里云oss上传图片
1.首先我们要下载阿里云oss的sdk包:(可以下载原版的,改过的通用版在本人的百度云,嘎嘎嘎~) 2.下载好之后放到项目文件目录里面 3.要在需要的控制器引用这个sdk文件例如: include(& ...
- Windows环境下用C#编程将文件上传至阿里云OSS笔记
Windows环境下用C#编程将文件上传至阿里云OSS笔记 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/detai ...
- laravel下使用阿里云oss上传图片
对小公司而言,使用阿里云oss比直接买硬盘要划算的多,不管从存储性价比上还是从网速负载上.最近因为公司的项目有比较大的图片存储访问需求,所以决定使用阿里云的oss. 在研究了一下以后,摆着不自己造轮子 ...
- 构建基于阿里云OSS文件上传服务
转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...
- iOS使用阿里云OSS对象存储 (SDK 2.1.1)
最近项目中用到了阿里云OSS对象存储,用来存储APP中图片.音频等一些数据.但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所 ...
- 快速上手阿里云oss SDK
使用阿里云oss SDK 依赖安装: pip install oss2 pip install aliyun-python-sdk-sts 版本最好是 2.7.5 或以上 如果要开启 crc64 循环 ...
随机推荐
- 问题解决——ShowWindow不显示窗口
配合任务栏通知区域. //MFC对话框程序 void CXXXDlg::OnShowHideUi() { // TODO: 在此添加命令处理程序代码 m_bShown=!m_bShown; ShowW ...
- Keepalived高可用集群搭建(转载linuxIDC)
1.Keepalived简介 Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障.使用多台节点安装keepalived.其 他的节点用来提供真实的服务,同 ...
- hiveql basic
set hive.cli.print.current.db=true; set hive.mapred.mode=strict; set hive.mapred.mode=nonstrict; SHO ...
- [转]ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)
本文转自:http://www.cnblogs.com/ailen226/p/ionic.html 首先声明,本教程参考国外网站(http://gonehybrid.com/how-to-use-po ...
- CUDA入门1
1GPUs can handle thousands of concurrent threads. 2The pieces of code running on the gpu are calle ...
- jmeter的使用(一)
1.下载jmeter:http://jmeter.apache.org/download_jmeter.cgi 2.启动jmeter,打开jmeter.bat 3.添加线程组 4.添加http请求 5 ...
- Appium路线图及1.0正式版发布
Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...
- 原创翻译-测试驱动开发(TDD)
测试驱动开发原则 翻译自<<Expert Python Programming>> 测试驱动开发是指首先编写包含所有测试软件特点的测试集,然后再去开发软件.也就是说,在编写软件 ...
- 字典树(Tire)模板
#include<stdio.h> #include<string.h> #include<stdlib.h> struct node { node *ne[]; ...
- 使用Unity3D的50个技巧:Unity3D最佳实践
翻译故事 原文:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/ 这篇技巧,我自己也在翻译, ...