fix(upload): replace static S3_BUCKET with getS3Bucket() for dynamic config
This commit is contained in:
parent
ab504841c3
commit
737e69d72f
1 changed files with 5 additions and 13 deletions
|
|
@ -3,7 +3,7 @@ import multer from 'multer';
|
|||
import { Queue } from 'bullmq';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import pool from '../db/pool.js';
|
||||
import { s3Client, uploadStream, deleteObject, S3_BUCKET } from '../s3/client.js';
|
||||
import { s3Client, uploadStream, deleteObject, getS3Bucket } from '../s3/client.js';
|
||||
import {
|
||||
CreateMultipartUploadCommand,
|
||||
UploadPartCommand,
|
||||
|
|
@ -103,7 +103,6 @@ router.post('/init', async (req, res, next) => {
|
|||
}
|
||||
|
||||
const assetId = uuidv4();
|
||||
// Include assetId in the key so same-named files in a project never collide
|
||||
const s3Key = `originals/${assetId}/${filename}`;
|
||||
const tagsArray = tags ? (Array.isArray(tags) ? tags : [tags]) : [];
|
||||
|
||||
|
|
@ -123,7 +122,7 @@ router.post('/init', async (req, res, next) => {
|
|||
|
||||
const multipartUpload = await s3Client.send(
|
||||
new CreateMultipartUploadCommand({
|
||||
Bucket: S3_BUCKET,
|
||||
Bucket: getS3Bucket(),
|
||||
Key: s3Key,
|
||||
ContentType: contentType,
|
||||
})
|
||||
|
|
@ -152,7 +151,7 @@ router.post('/part', upload.single('file'), async (req, res, next) => {
|
|||
|
||||
const partUpload = await s3Client.send(
|
||||
new UploadPartCommand({
|
||||
Bucket: S3_BUCKET,
|
||||
Bucket: getS3Bucket(),
|
||||
Key: key,
|
||||
PartNumber: parseInt(partNumber, 10),
|
||||
UploadId: uploadId,
|
||||
|
|
@ -182,11 +181,10 @@ router.post('/complete', async (req, res, next) => {
|
|||
|
||||
await s3Client.send(
|
||||
new CompleteMultipartUploadCommand({
|
||||
Bucket: S3_BUCKET,
|
||||
Bucket: getS3Bucket(),
|
||||
Key: key,
|
||||
UploadId: uploadId,
|
||||
MultipartUpload: {
|
||||
// Accept both casings: api.js sends ETag (uppercase), defend against both
|
||||
Parts: parts.map(p => ({
|
||||
ETag: p.ETag || p.etag,
|
||||
PartNumber: p.partNumber || p.PartNumber,
|
||||
|
|
@ -195,8 +193,6 @@ router.post('/complete', async (req, res, next) => {
|
|||
})
|
||||
);
|
||||
|
||||
// Original file in S3 — queue proxy generation
|
||||
// proxy worker will dispatch thumbnail once proxy is ready
|
||||
const result = await pool.query(
|
||||
`UPDATE assets
|
||||
SET status = 'processing', updated_at = NOW()
|
||||
|
|
@ -216,7 +212,6 @@ router.post('/complete', async (req, res, next) => {
|
|||
outputKey: `proxies/${assetId}.mp4`,
|
||||
});
|
||||
|
||||
// Sync AMPP folder — non-blocking
|
||||
syncToAmpp(asset.id, asset.project_id, asset.bin_id);
|
||||
|
||||
res.json(asset);
|
||||
|
|
@ -237,7 +232,7 @@ router.post('/abort', async (req, res, next) => {
|
|||
}
|
||||
|
||||
await s3Client.send(
|
||||
new AbortMultipartUploadCommand({ Bucket: S3_BUCKET, Key: key, UploadId: uploadId })
|
||||
new AbortMultipartUploadCommand({ Bucket: getS3Bucket(), Key: key, UploadId: uploadId })
|
||||
);
|
||||
|
||||
await pool.query('DELETE FROM assets WHERE id = $1', [assetId]);
|
||||
|
|
@ -260,7 +255,6 @@ router.post('/simple', upload.single('file'), async (req, res, next) => {
|
|||
}
|
||||
|
||||
const assetId = uuidv4();
|
||||
// Include assetId in the key so same-named files in a project never collide
|
||||
const s3Key = `originals/${assetId}/${filename}`;
|
||||
const mimeType = contentType || req.file.mimetype;
|
||||
const tagsArray = tags ? (Array.isArray(tags) ? tags : [tags]) : [];
|
||||
|
|
@ -289,14 +283,12 @@ router.post('/simple', upload.single('file'), async (req, res, next) => {
|
|||
|
||||
const asset = result.rows[0];
|
||||
|
||||
// Queue proxy — proxy worker dispatches thumbnail on completion
|
||||
await proxyQueue.add('generate', {
|
||||
assetId,
|
||||
inputKey: s3Key,
|
||||
outputKey: `proxies/${assetId}.mp4`,
|
||||
});
|
||||
|
||||
// Sync AMPP folder — non-blocking
|
||||
syncToAmpp(assetId, projectId, binId || null);
|
||||
|
||||
res.json(asset);
|
||||
|
|
|
|||
Loading…
Reference in a new issue