业务背景
有同学在页面录制视频时,将生产地址写成了测试环境,导致大量生产数据跑进测试环境,领导大发雷霆,而我临危受命。
解决方案
1.创建springboot工程
2.读取测试环境的亚马逊S3存储服务器的zip
3.修改zip里面的域名为生产环境
4.压缩zip上传至生产S3存储服务器
代码实现
1.连接S3存储服务器
/**
* @Author nasus
* @Date 2021/2/1
* @Description
*/
@Component
@Slf4j
public class OssConn {
public AmazonS3 conn(String accessKey,String secretKey,String endpoint){
AmazonS3 amazonClient = null;
try{
AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
ClientConfiguration clientConfig = new ClientConfiguration();
clientConfig.setProtocol(Protocol.HTTP);
amazonClient = new AmazonS3Client(credentials, clientConfig);
amazonClient.setEndpoint(endpoint);
amazonClient.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).disableChunkedEncoding().build());
log.info("OSS-AmazonClient初始化:{}成功",endpoint);
}catch (Exception e){
e.getMessage();
log.error("OSS-AmazonClient初始化失败",e);
System.exit(0);
}
return amazonClient;
}
}
2.建立与S3存储服务器连接读取压缩
private Boolean readZipModifyText(String bizId, String id, String filePath, String fileName) {
if (null == uatS3)
uatS3 = ossConn.conn(uatAccessKey, uatSecretKey, uatEndpoint);
if (null == prdS3)
prdS3 = ossConn.conn(prdAccessKey, prdSecretKey, prdEndpoint);
String zipText = "";
ZipFile zipFile = null;
try {
S3Object object = uatS3.