#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 prefix = "yourkeyPrefix";
TosClientV2 client(region, accessKey, secretKey);
ListObjectVersionsV2Input input(bucketName);
input.setDelimiter("/");
bool isTruncated = true;
std::string nextKeyMarker = "";
std::string nextVersionIdMarker = "";
input.setKeyMarker(nextKeyMarker);
input.setVersionIdMarker(nextVersionIdMarker);
auto output = client.listObjectVersions(input);
if (!output.isSuccess()) {
std::cout << "ListObjectVersions failed." << output.error().String() << std::endl;
nextKeyMarker = output.result().getNextKeyMarker();
nextVersionIdMarker = output.result().getNextVersionIdMarker();
isTruncated = output.result().isTruncated();
std::cout << "ListObjectVersions success." << std::endl;
for (const auto& versions : output.result().getVersions()) {
std::cout << "versions"<<
",name:" << versions.getKey() <<
",size:" << versions.getSize() <<
",etag:" << versions.getETag() <<
",is latest:" << versions.isLatest() <<
",version id:" << versions.getVersionId() <<
",hashCrc64:" << versions.getHashCrc64Ecma() <<
",lastmodify time:" << versions.getStringFormatLastModified() <<
",storage class:" << versions.getStringFormatStorageClass() << std::endl;
for (const auto& deleteMarker : output.result().getDeleteMarkers()) {
std::cout << "deleteMarkers"<<
",name:" << deleteMarker.getKey() <<
",is latest:" << deleteMarker.isLatest() <<
",version id:" << deleteMarker.getVersionId() <<
",lastmodify time:" << deleteMarker.getStringFormatLastModified() << std::endl;
for (const auto& prefix : output.result().getCommonPrefixes()) {
std::cout << "Common Prefixes"<< prefix.getPrefix() << std::endl;