Add image upload validations and random naming

This commit is contained in:
Tim
2025-07-01 13:00:47 +08:00
parent a37f046898
commit d69f7251e0
5 changed files with 43 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
import org.springframework.stereotype.Service;
import java.io.ByteArrayInputStream;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -52,15 +53,22 @@ public class CosImageUploader extends ImageUploader {
@Override
public CompletableFuture<String> upload(byte[] data, String filename) {
return CompletableFuture.supplyAsync(() -> {
String ext = "";
int dot = filename.lastIndexOf('.');
if (dot != -1) {
ext = filename.substring(dot);
}
String randomName = UUID.randomUUID().toString().replace("-", "") + ext;
ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(data.length);
PutObjectRequest req = new PutObjectRequest(
bucketName,
filename,
randomName,
new ByteArrayInputStream(data),
meta);
cosClient.putObject(req);
return baseUrl + "/" + filename;
return baseUrl + "/" + randomName;
}, executor);
}
}