import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosException;
import com.volcengine.tos.model.object.ListObjectVersionsV2Input;
import com.volcengine.tos.model.object.ListObjectVersionsV2Output;
import com.volcengine.tos.model.object.ListedDeleteMarkerEntry;
public class ListObjectVersionsLoopExample extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
String endpoint = "your endpoint";
String region = "your region";
String accessKey = "your access key";
String secretKey = "your secret key";
String securityToken = "your security token";
String bucketName = "your bucket name";
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);
TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey, securityToken);
Thread tosThread = new Thread(new Runnable() {
boolean isTruncated = true;
String versionIDMarker = "";
ListObjectVersionsV2Input input = new ListObjectVersionsV2Input()
.setBucket(bucketName).setMaxKeys(maxKeys)
.setKeyMarker(keyMarker).setVersionIDMarker(versionIDMarker);
ListObjectVersionsV2Output output = tos.listObjectVersions(input);
Log.i("listObjectVersions", "listObjectVersions succeed, is truncated? " + output.isTruncated() +
"next key marker is " + output.getNextKeyMarker() + "next version id marker is" +
output.getNextVersionIDMarker());
if (output.getDeleteMarkers() != null) {
for (int i = 0; i < output.getDeleteMarkers().size(); i++) {
ListedDeleteMarkerEntry entry = output.getDeleteMarkers().get(i);
Log.i("listObjectVersions", "No." + (i+1+total) + " listed entry is " + entry);
total += output.getDeleteMarkers().size();
isTruncated = output.isTruncated();
keyMarker = output.getNextKeyMarker();
versionIDMarker = output.getVersionIDMarker();
} catch (TosException e) {
Log.e("TosException", "listObjectVersions failed");