#include "TosClientV2.h"
using namespace VolcengineTos;
std::string region = "Your Region";
std::string accessKey = std::getenv("TOS_ACCESS_KEY");
std::string secretKey = std::getenv("TOS_SECRET_KEY");
std::string bucketName = "examplebucket";
std::string objectName = "exampledir/exampleobject.txt";
TosClientV2 client(region, accessKey, secretKey);
int64_t expires = 86400;
PreSignedPostSignatureInput input(bucketName,objectName, expires);
{PostSignatureCondition("x-tos-acl", "public-read"),
PostSignatureCondition("key", "sdktest", std::make_shared<std::string>("starts-with"))});
input.setContentLengthRange(std::make_shared<ContentLengthRange>(50, 1025));
auto output = client.preSignedPostSignature(input);
if(!output.isSuccess()){
std::cout << "GeneratePreSignedUrl failed." << output.error().String() << std::endl;
auto res = output.result();
std::cout << "GeneratePreSignedUrl Success:" << "\n"
<< "Policy: " << res.getPolicy() << "\n"
<< "Algorithm: " << res.getAlgorithm() << "\n"
<< "Credential: " << res.getCredential() << "\n"
<< "Date: " << res.getDate() << "\n"
<< "OriginPolicy: " << res.getOriginPolicy() << "\n"
<< "Signature: " << res.getSignature() << "\n";