Merge pull request #255 from nagisa77/codex/upload-images-to-dynamic_assert-folder

Use dynamic_assert directory for COS uploads
This commit is contained in:
Tim
2025-07-24 17:47:59 +08:00
committed by GitHub
2 changed files with 6 additions and 4 deletions

View File

@@ -28,6 +28,7 @@ public class CosImageUploader extends ImageUploader {
private final COSClient cosClient; private final COSClient cosClient;
private final String bucketName; private final String bucketName;
private final String baseUrl; private final String baseUrl;
private static final String UPLOAD_DIR = "dynamic_assert/";
private static final Logger logger = LoggerFactory.getLogger(CosImageUploader.class); private static final Logger logger = LoggerFactory.getLogger(CosImageUploader.class);
private final ExecutorService executor = Executors.newFixedThreadPool(2, private final ExecutorService executor = Executors.newFixedThreadPool(2,
new CustomizableThreadFactory("cos-upload-")); new CustomizableThreadFactory("cos-upload-"));
@@ -71,18 +72,19 @@ public class CosImageUploader extends ImageUploader {
ext = filename.substring(dot); ext = filename.substring(dot);
} }
String randomName = UUID.randomUUID().toString().replace("-", "") + ext; String randomName = UUID.randomUUID().toString().replace("-", "") + ext;
logger.debug("Generated object key {}", randomName); String objectKey = UPLOAD_DIR + randomName;
logger.debug("Generated object key {}", objectKey);
ObjectMetadata meta = new ObjectMetadata(); ObjectMetadata meta = new ObjectMetadata();
meta.setContentLength(data.length); meta.setContentLength(data.length);
PutObjectRequest req = new PutObjectRequest( PutObjectRequest req = new PutObjectRequest(
bucketName, bucketName,
randomName, objectKey,
new ByteArrayInputStream(data), new ByteArrayInputStream(data),
meta); meta);
logger.debug("Sending PutObject request to bucket {}", bucketName); logger.debug("Sending PutObject request to bucket {}", bucketName);
cosClient.putObject(req); cosClient.putObject(req);
String url = baseUrl + "/" + randomName; String url = baseUrl + "/" + objectKey;
logger.debug("Upload successful, accessible at {}", url); logger.debug("Upload successful, accessible at {}", url);
return url; return url;
}, executor); }, executor);

View File

@@ -18,6 +18,6 @@ class CosImageUploaderTest {
String url = uploader.upload("data".getBytes(), "img.png").join(); String url = uploader.upload("data".getBytes(), "img.png").join();
verify(client).putObject(any(PutObjectRequest.class)); verify(client).putObject(any(PutObjectRequest.class));
assertTrue(url.matches("http://cos.example.com/[a-f0-9]{32}\\.png")); assertTrue(url.matches("http://cos.example.com/dynamic_assert/[a-f0-9]{32}\\.png"));
} }
} }