import com.volcengine.tos.TOSV2;
import com.volcengine.tos.TOSV2ClientBuilder;
import com.volcengine.tos.TosClientException;
import com.volcengine.tos.TosServerException;
import com.volcengine.tos.comm.common.RedirectType;
import com.volcengine.tos.model.bucket.*;
import java.util.ArrayList;
public class PutBucketMirrorBackExample {
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 = "your bucket name";
TOSV2 tos = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);
Condition condition = new Condition().setHttpCode(404);
List<String> passList = new ArrayList<>();
passList.add("pass_header1");
passList.add("pass_header2");
List<String> removeList = new ArrayList<>();
removeList.add("remove_header1");
removeList.add("remove_header2");
MirrorHeader mirrorHeader = new MirrorHeader().setPassAll(true)
.setPass(passList).setRemove(removeList);
List<String> primary = new ArrayList<>();
primary.add("http://www.volcengine.com/obj/tostest/1");
List<String> follower = new ArrayList<>();
follower.add("http://www.volcengine.com/obj/tostest/2");
SourceEndpoint sourceEndpoint = new SourceEndpoint().setPrimary(primary).setFollower(follower);
PublicSource publicSource = new PublicSource().setSourceEndpoint(sourceEndpoint);
Redirect redirect = new Redirect()
.setRedirectType(RedirectType.REDIRECT_MIRROR)
.setFetchSourceOnRedirect(true)
.setFollowRedirect(true)
.setMirrorHeader(mirrorHeader)
.setPublicSource(publicSource);
MirrorBackRule rule = new MirrorBackRule().setId("1").setCondition(condition).setRedirect(redirect);
List<MirrorBackRule> rules = new ArrayList<>();
PutBucketMirrorBackInput input = new PutBucketMirrorBackInput().setBucket(bucketName).setRules(rules);
PutBucketMirrorBackOutput output = tos.putBucketMirrorBack(input);
System.out.println("putBucketMirrorBack succeed");
} catch (TosClientException e) {
System.out.println("putBucketMirrorBack failed");
System.out.println("Message: " + e.getMessage());
if (e.getCause() != null) {
e.getCause().printStackTrace();
} catch (TosServerException e) {
System.out.println("putBucketMirrorBack 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("putBucketMirrorBack failed");
System.out.println("unexpected exception, message: " + t.getMessage());