AWS S3服務使用


AWS S3是亞馬遜的一種文件存儲服務使用方便。

一、配置服務

public static class AWS_S3ClientInfo
    {
        private static readonly string awsAccessKey = "AKIAJOXFZDXXXXX";

        private static readonly string awsSecretKey = "6s2AGbNYmhF4xeXXXXXXXXX/";

        public static readonly string bucketName = "test";

        //提供最基本的一個配置
        public static AmazonS3Config config = new AmazonS3Config()
        {
            //這個地址是固定的,可以不寫
            //ServiceURL = "http://s3.amazonaws.com",

            //因為aws服務器是分地區的,這里如果不配置區域會一直報錯,還找不到頭緒。
            RegionEndpoint = RegionEndpoint.APSoutheast1,

        };

        public static IAmazonS3 GetS3ClientInfo()
        {
            return new AmazonS3Client(awsAccessKey, awsSecretKey, config);
        }

    }

二、調用上傳服務

  public void UpLoadFile()
        {
            try
            {
                using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
                {
                    var bt = File.ReadAllBytes(AppDomain.CurrentDomain.BaseDirectory + "../../img/a.txt");
                   var mm= new MemoryStream(bt);
                    PutObjectRequest putObjectRequest = new PutObjectRequest();
                    putObjectRequest.InputStream = mm;
                    //可以上傳string類型
                    //putObjectRequest.ContentBody = "你好!";
                    putObjectRequest.BucketName = AWS_S3ClientInfo.bucketName;
                    putObjectRequest.ContentType = "application/octet-stream";
 putObjectRequest.Metadata.Add("Access-Control-Allow-Origin", "*");
//文件的路徑 putObjectRequest.Key = $"img/test-6.jpg"; //文件權限 putObjectRequest.CannedACL = S3CannedACL.PublicRead; PutObjectResponse putObjectResponse = s3Client.PutObject(putObjectRequest); mm.Dispose(); Console.WriteLine("結果=" + putObjectResponse.HttpStatusCode); } } catch (Exception e) { Console.WriteLine("Exception message: {0}", e.Message); } }

三、下載服務

            using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
            {
                GetObjectRequest request = new GetObjectRequest()
                {
                    BucketName = AWS_S3ClientInfo.bucketName,
                    Key = "s3.txt"
                };
                //下載
                GetObjectResponse response = s3Client.GetObject(request);
                response.WriteResponseStreamToFile(AppDomain.CurrentDomain.BaseDirectory + "1.txt");
            }

四、刪除服務

        using (IAmazonS3 s3Client = AWS_S3ClientInfo.GetS3ClientInfo())
          {
                GetObjectRequest request = new GetObjectRequest()
                {
                    BucketName = AWS_S3ClientInfo.bucketName,
                    Key = "s3.txt"
                };

                //刪除
                 s3Client.DeleteObject(request.BucketName, request.Key);

            }

這個服務在Windows平台上沒問題,在linux平台上上傳不了,需要添加忽略證書

    //忽略驗證ssl/tls證書
    ServicePointManager.ServerCertificateValidationCallback =(sender, certificate, chain, errors) => true;

關於忽略證書

關於S3文檔

S3的SDK

AWS的RegionEndpoint集合


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM