save code
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
package digital.application.utils;
|
||||
|
||||
import com.volcengine.tos.*;
|
||||
import com.volcengine.tos.auth.StaticCredentials;
|
||||
import com.volcengine.tos.model.object.PutObjectInput;
|
||||
import com.volcengine.tos.model.object.PutObjectOutput;
|
||||
import com.volcengine.tos.transport.TransportConfig;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
|
||||
public class CloudStorageService {
|
||||
static Long startTime = 0l;
|
||||
|
||||
static Long endTime = 0l;
|
||||
|
||||
static String bucketPath = "hair/result/image/";
|
||||
|
||||
private static TOSV2 tosClient = null;
|
||||
|
||||
private static TOSV2 getInstance() {
|
||||
if (tosClient == null) {
|
||||
tosClient = createTosClient();
|
||||
}
|
||||
return tosClient;
|
||||
|
||||
}
|
||||
|
||||
private static TOSV2 createTosClient() {
|
||||
String endpoint = "tos-accelerate.volces.com";
|
||||
String region = "ap-southeast-1";
|
||||
String accessKey = "AKLTMDA2YjdiNGRmZDJmNGM2Y2JiYTA2MDFmZTVhMGU2Yzc";
|
||||
String secretKey = "WWpnMk1HWmxZV1l3TWpVME5EazJZemxtTkRrMU1ERTVNV0pqWlRFMFpqYw==";
|
||||
|
||||
int idleConnectionTimeMills = 60000;
|
||||
int maxConnections = 64;
|
||||
|
||||
TransportConfig config = TransportConfig.builder()
|
||||
.idleConnectionTimeMills(idleConnectionTimeMills)
|
||||
.maxConnections(maxConnections)
|
||||
.build();
|
||||
TOSClientConfiguration configuration = TOSClientConfiguration.builder()
|
||||
.transportConfig(config)
|
||||
.region(region)
|
||||
.endpoint(endpoint)
|
||||
.credentials(new StaticCredentials(accessKey, secretKey))
|
||||
.build();
|
||||
|
||||
TOSV2 tos = new TOSV2ClientBuilder().build(configuration);
|
||||
return tos;
|
||||
}
|
||||
|
||||
|
||||
private static boolean saveByteDanceTos(String fileName, InputStream inputStream) {
|
||||
|
||||
startTime = System.currentTimeMillis();
|
||||
TOSV2 tos = getInstance();
|
||||
endTime = System.currentTimeMillis();
|
||||
startTime = System.currentTimeMillis();
|
||||
|
||||
String bucketName = "hairstyle";
|
||||
// TOSV2 提供的所有接口均会抛出 TosException 异常,需要使用 try-catch 进行捕获并处理。
|
||||
try {
|
||||
// 设置上传的桶名和对象名
|
||||
String objKey = bucketPath + fileName;
|
||||
|
||||
PutObjectInput putObjectInput = new PutObjectInput().setBucket(bucketName).setKey(objKey).setContent(inputStream);
|
||||
// 上传对象
|
||||
PutObjectOutput output = tos.putObject(putObjectInput);
|
||||
|
||||
endTime = System.currentTimeMillis();
|
||||
|
||||
return true;
|
||||
} catch (TosClientException e) {
|
||||
// 操作失败,捕获客户端异常,一般情况是请求参数错误,此时请求并未发送
|
||||
System.out.println("putObject failed");
|
||||
System.out.println("Message: " + e.getMessage());
|
||||
if (e.getCause() != null) {
|
||||
e.getCause().printStackTrace();
|
||||
}
|
||||
} catch (TosServerException e) {
|
||||
// 操作失败,捕获服务端异常,可以获取到从服务端返回的详细错误信息
|
||||
System.out.println("putObject 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());
|
||||
} catch (Throwable t) {
|
||||
// 作为兜底捕获其他异常,一般不会执行到这里
|
||||
System.out.println("putObject failed");
|
||||
System.out.println("unexpected exception, message: " + t.getMessage());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件 到 云存储
|
||||
*
|
||||
* @param fileName
|
||||
* @param fileStream
|
||||
* @return
|
||||
*/
|
||||
public static String saveFileToBucket(String fileName, InputStream fileStream) {
|
||||
String resultUrl = null;
|
||||
try {
|
||||
boolean saveResult = saveByteDanceTos(fileName, fileStream);
|
||||
if(saveResult){
|
||||
resultUrl = "https://hairstyle.tos-accelerate.volces.com/"+bucketPath+fileName;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return resultUrl;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user