using System.Collections.Generic;
private static void Main(string[] args)
var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
var endpoint = "https://tos-cn-beijing.volces.com";
var region = "cn-beijing";
var bucketName = "*** Provide your bucket name ***";
var objectKey = "*** Provide your object key ***";
var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();
var preSignedURLInput = new PreSignedURLInput()
HttpMethod = HttpMethodType.HttpMethodPut,
Header = new Dictionary<string, string>() { { "Content-Type", "text/plain" } }
var preSignedURLOutput = client.PreSignedURL(preSignedURLInput);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(preSignedURLOutput.SignedUrl);
request.Method = WebRequestMethods.Http.Put;
var body = System.Text.Encoding.UTF8.GetBytes(data);
request.ContentLength = data.Length;
request.ContentType = "text/plain";
using (Stream requestStream = request.GetRequestStream())
requestStream.Write(body, 0, data.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine("PreSignedURL Put Object Status Code {0}", response.StatusCode);
catch (TosServerException ex)
Console.WriteLine("PreSignedURL failed, Request ID {0}", ex.RequestID);
Console.WriteLine("PreSignedURL failed, Status Code {0}", ex.StatusCode);
Console.WriteLine("PreSignedURL failed, Response Error Code {0}", ex.Code);
Console.WriteLine("PreSignedURL failed, Response Error Message {0}", ex.Message);
catch (TosClientException ex)
Console.WriteLine("PreSignedURL failed, Error Message {0}", ex.Message);
Console.WriteLine("PreSignedURL failed, {0}", ex.Message);