基于OSS C# SDK打造个人云盘【.net跨平台】

651 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、环境准备

  • Windows

    • 适用于.NET 2.0及以上版本
    • 适用于Visual Studio 2010及以上版本
  • Linux/Mac

    适用于Mono 3.12及以上版本

下载SDK

安装SDK

  • Windows环境安装

    • NuGet方式安装(本文基于Windows平台,故采用此方法)

      1. 如果您的Visual Studio没有安装NuGet,请先安装NuGet
      2. 在Visual Studio中新建或者打开已有的项目,选择工具 > NuGet程序包管理器 > 管理解决方案的NuGet程序包。
      3. 搜索aliyun.oss.sdk,在结果中找到Aliyun.OSS.SDK(适用于.NET Framework)或Aliyun.OSS.SDK.NetCore(适用于.Net Core),选择最新版本,单击安装。
    • DLL引用方式安装

      1. 下载并解压.NET SDK开发包。
      2. 在Release模式下编译aliyun-oss-sdk项目,生成DLL库。
      3. 打开Visual Studio的解决方案资源管理器,选择您的项目,右击项目名称 ,选择 引用 > 添加引用 ,在弹出的对话框中选择浏览。
      4. 找到DLL库生成的bin目录,选择Aliyun.OSS.dll文件,单击确定。
    • 项目引入方式安装

      如果是下载了SDK包或者从GitHub上下载了源码,并通过源码安装,操作步骤如下:

      1. 在Visual Studio中,右击选择解决方案,在弹出的菜单中单击添加现有项目。
      2. 在弹出的对话框中选择aliyun-oss-sdk.csproj文件,单击打开。
      3. 右击项目名称,选择引用 > 添加引用,在弹出的对话框中选择项目选项卡,选中aliyun-oss-sdk项目,单击确定。
  • Unix/Mac环境安装

    通过NuGet方式安装的步骤如下:

    1. 在Xamarin中新建或者打开已有的项目,选择工具Add NuGet Packages。
    2. 搜索到Aliyun.OSS.SDK或Aliyun.OSS.SDK.NetCore,选择最新版本,单击Add Package添加到项目应用中。

NuGet方式安装

安装 .NET Core 跨平台开发 和 NuGet包管理器

image.png

创建项目

image.png

在Visual Studio中新建或者打开已有的项目,选择工具 > NuGet程序包管理器 > 管理解决方案的NuGet程序包。 搜索 aliyun.oss.sdk,在结果中找到 Aliyun.OSS.SDK 或 Aliyun.OSS.SDK.NetCore,选择最新版本,单击安装。

image.png

二、教程

阿里云官方教程

C#官方教程

示例文件示例内容
PutObjectSample.cs上传文件
AppendObjectSample.cs追加上传
DoesObjectExistSample.cs判断文件是否存在
DeleteObjectsSample.cs删除文件
CopyObjectSample.cs拷贝文件
ModifyObjectMetaSample.cs管理文件元信息
MultipartUploadSample.cs分片上传
ResumableSample.cs断点续传上传
GetObjectSample.cs下载文件
GetObjectByRangeSample.cs范围下载
GetObjectAclSample.cs管理文件访问权限
SetObjectAclSample.cs管理文件访问权限
ListObjectsSample.cs列举文件
UrlSignatureSample.cs授权访问
UploadCallbackSample.cs上传回调
ProgressSample.cs上传进度条下载进度条
CNameSample.cs使用自定义域名访问OSS(CNAME)
PostPolicySample.cs表单上传
CreateBucketSample.cs创建存储空间
DeleteBucketSample.cs删除存储空间
DoesBucketExistSample.cs判断存储空间是否存在
ListBucketsSample.cs列举存储空间
SetBucketAclSample.cs设置存储空间的访问权限
SetBucketLifecycleSample.cs生命周期
SetBucketLoggingSample.cs访问日志
SetBucketRefererSample.cs防盗链
SetBucketWetbsiteSample.cs静态网站托管
SetBucketCorsSample.cs跨域资源共享
ImageProcessSample.cs图片处理

三、示例代码

using System;
using Aliyun.OSS;

namespace MyPan
{
    class Program
    {
        static void Main(string[] args)
        {
            var endpoint = "oss-cn-beijing.aliyuncs.com";
            var accessKeyId = "LTAI4FyooBP1GznBSCtZBatk";
            var accessKeySecret = "qPV71KBQucYY9cmwDbPOtdmdCpvztn";
            var bucketName = "transsvr";
            // 创建OSSClient实例。
            var client = new OssClient(endpoint, accessKeyId, accessKeySecret);

            while (true)
            {
                Console.WriteLine("Please input object Name:");
                var objectName = Console.ReadLine();
                Console.WriteLine("Please input local file path:");
                var localFilename = Console.ReadLine();
                try
                {
                    // 上传文件。
                    var result = client.PutObject(bucketName, objectName, localFilename);
                    Console.WriteLine("Put object succeeded, ETag: {0} ", result.ETag);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Put object failed, {0}", ex.Message);
                }
            }

        }
    }
}