Uploading File to DO Spaces using AWS SDK .NET/.NET Core

Posted October 31, 2019 5.8k views
DigitalOcean Spaces

I was searching for a code snippet on how to upload a file to DO Spaces but cloud not found anything. After many attempts, I found the solution.

After downloading AWS SDK from nuget manager,

Upload Class:

public static  class UploadFileMPUHighLevelAPITest
        public static  string bucketName = "your spaces name";
        //public static string filePath = "d:\\test upload.txt";
        public static string endpoingURL = "";
        public static IAmazonS3 s3Client;

        public static  bool UploadFile(string filePath, string fileName, string folderName)
            var s3ClientConfig = new AmazonS3Config
                ServiceURL = endpoingURL
            s3Client = new AmazonS3Client(s3ClientConfig);
                var fileTransferUtility = new TransferUtility(s3Client);
                var fileTransferUtilityRequest = new TransferUtilityUploadRequest
                    BucketName = bucketName+ @"/" + folderName,
                    FilePath = filePath,
                    StorageClass = S3StorageClass.StandardInfrequentAccess,
                    PartSize = 6291456, // 6 MB
                    Key = fileName,
                    CannedACL = S3CannedACL.PublicRead
                return true;
            catch (AmazonS3Exception e)
                Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
            catch (Exception e)
                Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
                if (e.Message.Contains("disposed"))
                    return true;
            return false;


  "AWS": {
    "AccessKey": "your access key",
    "SecretKey": "your secret key"


        public void ConfigureServices(IServiceCollection services)
            //enable cors
            services.AddCors(c =>
                c.AddPolicy("AllowOrigin", options => options.AllowAnyOrigin());

            services.AddDbContext<onusshoppingContext>(options => options.UseMySql(Configuration.GetConnectionString("myContext")));

            Environment.SetEnvironmentVariable("AWS_ACCESS_KEY_ID", Configuration["AWS:AccessKey"]);
            Environment.SetEnvironmentVariable("AWS_SECRET_ACCESS_KEY", Configuration["AWS:SecretKey"]);


I hope it is useful!

1 comment

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer