阿里云OSS NET SDK 引用示范程序

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 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.
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搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
27天前
|
消息中间件 物联网 网络安全
MQTT常见问题之调用.net sdk 报“不知道这样的主机”如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
840 1
|
1月前
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
170 2
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
1月前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
2天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
9 0
|
8天前
|
存储 移动开发 前端开发
对象存储oss使用问题之OSS SDK .net 使用下载例程报错如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
23 0
|
9天前
|
存储 Java API
阿里云oss简介和使用流程
本文档介绍了如何准备阿里云OSS(对象存储服务)并开始使用它。首先,需要注册阿里云账号并进行实名认证,然后购买OSS资源包。在阿里云控制台中,可以创建和管理OSS存储空间(称为“Bucket”)。接着,文章简要介绍了阿里云OSS,它是一个基于云端的对象存储服务,提供高可靠性、高性能、低成本和易于使用的特性。 在阿里云OSS控制台,用户可以进行文件的上传和下载操作。通过API,开发者可以使用各种编程语言(如Java)来创建、删除Bucket以及上传、下载和删除文件。例如,Java代码示例展示了如何创建Bucket、上传文件、删除文件以及下载文件到本地的操作。
|
16天前
|
开发工具 对象存储
阿里云OSS文件上传
阿里云OSS文件上传
57 0
|
16天前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
55 0
|
28天前
|
存储 对象存储 容器
阿里云OSS对象存储基础入门
阿里云OSS对象存储基础入门
90 0