文档中心 > 快速入门
快速入门

最近更新时间:2022-07-25

本节介绍如何快速使用UOS .net SDK完成常见操作,如创建存储空间、上传文件、下载文件等。


创建桶

桶相当于数据的容器,可以存储若干文件。

以下代码用于新建一个桶:

  var Ak = "";
  var Sk = "";
  var endpoint = "http://s3.test.com";
  var buckName = "xxx";
  AmazonS3Client serviceClient = new AmazonS3Client(Ak,Sk,
  new AmazonS3Config{ ServiceURL = endpoint });

  try
  {  
      PutBucketResponse resp;
      // Construct request
      PutBucketRequest request = new PutBucketRequest
      {
          BucketName = buckName,
      };
      resp = serviceClient.PutBucketAsync(request).GetAwaiter().GetResult();
      Console.WriteLine(resp.HttpStatusCode);
  }


上传文件

以下代码用于上传文件至UOS:

  var Ak = "xxx";
  var Sk = "xxx";
  var endpoint = "http://s3.test.com";
  AmazonS3Client serviceClient = new AmazonS3Client(Ak,Sk,
  new AmazonS3Config{ ServiceURL = endpoint });

  try
  {  
      PutObjectResponse response;
      PutObjectRequest putObject = new PutObjectRequest{
          BucketName = "xxx",
          Key = "xxx"
      };

      response = serviceClient.PutObjectAsync(putObject).GetAwaiter().GetResult();
      Console.WriteLine(response.HttpStatusCode);
  }


下载文件

以下代码用于获取文件的文本内容:

  var Ak = "xxx";
  var Sk = "xxx";
  var endpoint = "http://s3.test.com";
  var bucketNanme = "xxx";
  var objectName = "xxx";
  AmazonS3Client serviceClient = new AmazonS3Client(Ak,Sk,
  new AmazonS3Config{ ServiceURL = endpoint });

  try
  {  
      GetObjectResponse response;
      GetObjectRequest getObject = new GetObjectRequest{
          BucketName = bucketNanme,
          Key = objectName
      };

      response = serviceClient.GetObjectAsync(getObject).GetAwaiter().GetResult();
      CancellationTokenSource source = new CancellationTokenSource();
      CancellationToken token = source.Token;
      response.WriteResponseStreamToFileAsync(objectName, true, token);
      Thread.Sleep(5000); // 等待5秒,用于上一步异步写文件
  }


列举文件

以下代码用于列举指定存储空间下的文件。

  var Ak = "";
  var Sk = "";
  var endpoint = "http://s3-test.com";
  AmazonS3Client serviceClient = new AmazonS3Client(Ak,Sk,
  new AmazonS3Config{ ServiceURL = endpoint });

  try
  {  
      ListObjectsV2Response response;
      ListObjectsV2Request listObjects = new ListObjectsV2Request{
          BucketName = "xxx",
          };

  response = serviceClient.ListObjectsV2Async(listObjects).GetAwaiter().GetResult();
  Console.WriteLine("Object Count is {0}", response.KeyCount);
  Console.WriteLine("Object is:");
   
  foreach (S3Object o_value in response.S3Objects)
  {
      Console.WriteLine(o_value.Key);
  }
  }


删除文件

以下代码用于删除指定文件:

  var Ak = "xxx";
  var Sk = "xxx";
  var endpoint = "http://s3.test.com";
  AmazonS3Client serviceClient = new AmazonS3Client(Ak,Sk,
  new AmazonS3Config{ ServiceURL = endpoint });

  try
  {  
      DeleteObjectResponse response;
      DeleteObjectRequest deleteObject = new DeleteObjectRequest{
          BucketName = "xxx",
          Key = "xxx" // object name
      };

      response = serviceClient.DeleteObjectAsync(deleteObject).GetAwaiter().GetResult();
  }