import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.model.object.*;
public class HNSListObjectsExample {
public static void main(String[] args) {
String endpoint = "your endpoint";
String region = "your region";
String accessKey = System.getenv("TOS_ACCESS_KEY");
String secretKey = System.getenv("TOS_SECRET_KEY");
String bucketName = "bucket-example";
TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);
boolean isTruncated = true;
ListObjectsV2Input input = new ListObjectsV2Input().setBucket(bucketName)
.setMaxKeys(maxKeys).setDelimiter(delimiter).setMarker(marker);
ListObjectsV2Output output = tos.listObjects(input);
System.out.printf("listObjects succeed, is truncated? %b, next marker is %s.\n",
output.isTruncated(), output.getNextMarker());
if (output.getContents() != null) {
for (int i = 0; i < output.getContents().size(); i++) {
ListedObjectV2 object = output.getContents().get(i);
System.out.printf("Listed object, key is %s, size is %d, storageClass is %s, ETag is %s, " +
"last modified is %s, crc64 value is %s.\n", object.getKey(), object.getSize(),
object.getStorageClass(), object.getEtag(), object.getLastModified().toString(), object.getHashCrc64ecma());
if (output.getCommonPrefixes() != null) {
for (int i = 0; i < output.getCommonPrefixes().size(); i++) {
ListedCommonPrefix commonPrefix = output.getCommonPrefixes().get(i);
System.out.println("Listed commonPrefix is " + commonPrefix.getPrefix());
listCommonPrefix(bucketName, maxKeys, delimiter, commonPrefix.getPrefix(), tos);
isTruncated = output.isTruncated();
marker = output.getNextMarker();
} catch (TosClientException e) {
System.out.println("listObjects failed");
System.out.println("Message: " + e.getMessage());
if (e.getCause() != null) {
e.getCause().printStackTrace();
} catch (TosServerException e) {
System.out.println("listObjects failed");
System.out.println("StatusCode: " + e.getStatusCode());
System.out.println("Code: " + e.getCode());
System.out.println("Message: " + e.getMessage());
System.out.println("RequestID: " + e.getRequestID());
System.out.println("listObjects failed");
System.out.println("unexpected exception, message: " + t.getMessage());
private static void listCommonPrefix(String bucketName, int maxKeys, String delimiter, String prefix, TOSV2 tos) {
boolean isTruncated = true;
ListObjectsV2Input input = new ListObjectsV2Input().setBucket(bucketName).setMaxKeys(maxKeys)
.setDelimiter(delimiter).setMarker(marker).setPrefix(prefix);
ListObjectsV2Output output = tos.listObjects(input);
System.out.printf("listObjects succeed, is truncated? %b, next marker is %s.\n",
output.isTruncated(), output.getNextMarker());
if (output.getContents() != null) {
for (int i = 0; i < output.getContents().size(); i++) {
ListedObjectV2 object = output.getContents().get(i);
System.out.printf("Listed object, key is %s, size is %d, storageClass is %s, ETag is %s, " +
"last modified is %s, crc64 value is %s.\n", object.getKey(), object.getSize(),
object.getStorageClass(), object.getEtag(), object.getLastModified().toString(), object.getHashCrc64ecma());
if (output.getCommonPrefixes() != null) {
for (int i = 0; i < output.getCommonPrefixes().size(); i++) {
ListedCommonPrefix commonPrefix = output.getCommonPrefixes().get(i);
System.out.println("Listed commonPrefix is " + commonPrefix.getPrefix());
isTruncated = output.isTruncated();
marker = output.getNextMarker();