Skip to content

Commit

Permalink
fix: Added concurrency and public flags
Browse files Browse the repository at this point in the history
  • Loading branch information
matvp91 committed Feb 19, 2025
1 parent 58f835e commit 4429fd8
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 12 deletions.
28 changes: 19 additions & 9 deletions apps/artisan/src/lib/s3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ const client = new S3({
export async function s3UploadFile(
localPath: string,
remotePath: string,
aclPublic: boolean,
options: {
public: boolean;
},
) {
const upload = new Upload({
client,
Expand All @@ -41,7 +43,7 @@ export async function s3UploadFile(
ContentType: lookup(localPath) || "binary/octet-stream",
Bucket: env.S3_BUCKET,
Key: remotePath,
ACL: aclPublic ? "public-read" : "private",
ACL: options.public ? "public-read" : "private",
},
});
await upload.done();
Expand All @@ -59,7 +61,14 @@ async function s3DownloadFile(remotePath: string, localPath: string) {
await writeFile(localPath, Body.transformToWebStream());
}

export async function s3DownloadFolder(remotePath: string, localPath: string) {
export async function s3DownloadFolder(
remotePath: string,
localPath: string,
// @ts-expect-error We do not use this for now
options: {
concurrency: number;
},
) {
const paginatedListObjects = paginateListObjectsV2(
{ client },
{
Expand Down Expand Up @@ -97,7 +106,10 @@ export async function s3DownloadFolder(remotePath: string, localPath: string) {
export async function s3UploadFolder(
localPath: string,
remotePath: string,
aclPublic: boolean,
options: {
public: boolean;
concurrency: number;
},
) {
await s3DeleteFolder(remotePath);

Expand All @@ -109,11 +121,9 @@ export async function s3UploadFolder(
}

for (const file of files) {
await s3UploadFile(
`${localPath}/${file}`,
`${remotePath}/${file}`,
aclPublic,
);
await s3UploadFile(`${localPath}/${file}`, `${remotePath}/${file}`, {
public: options.public,
});
}
}

Expand Down
2 changes: 1 addition & 1 deletion apps/artisan/src/workers/ffmpeg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export const ffmpegCallback: WorkerCallback<FfmpegData, FfmpegResult> = async ({
await s3UploadFile(
`${outDir}/${name}`,
`transcode/${job.data.assetId}/${name}`,
false,
{ public: false },
);

return {
Expand Down
9 changes: 7 additions & 2 deletions apps/artisan/src/workers/package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,9 @@ export const packageCallback: WorkerCallback<
async function handleStepInitial(job: Job<PackageData>, dir: WorkerDir) {
const inDir = await dir.createTempDir();

await s3DownloadFolder(`transcode/${job.data.assetId}`, inDir);
await s3DownloadFolder(`transcode/${job.data.assetId}`, inDir, {
concurrency: job.data.concurrency,
});

job.log(`Synced folder in ${inDir}`);

Expand Down Expand Up @@ -146,7 +148,10 @@ async function handleStepInitial(job: Job<PackageData>, dir: WorkerDir) {
const s3Dir = `package/${job.data.assetId}/${job.data.name}`;
job.log(`Uploading to ${s3Dir}`);

await s3UploadFolder(outDir, s3Dir, job.data.public);
await s3UploadFolder(outDir, s3Dir, {
public: job.data.public,
concurrency: job.data.concurrency,
});
}

async function handleJobOutcome(job: Job<PackageData>) {
Expand Down

0 comments on commit 4429fd8

Please sign in to comment.