use cli b2 instead of s3 library

This commit is contained in:
CJ_Clippy 2025-08-27 16:29:55 -08:00
parent f238c13739
commit 3ffbcbab8e
5 changed files with 37 additions and 28 deletions

View File

@ -7,5 +7,6 @@
"https://json.schemastore.org/kustomization.json": "file:///home/cj/Documents/futureporn-monorepo/clusters/production/infrastructure.yaml"
},
"editor.tabSize": 2,
"editor.formatOnSave": true
"editor.formatOnSave": true,
"git.ignoreLimitWarning": true
}

View File

@ -19,7 +19,8 @@ echo(" * Remote pin the IPFS CID")
echo(" [Press Enter When Complete...]")
_ = stdin()
echo(" * Create magnet link. ex: `torf ~/Downloads/projektmelody-chaturbate-2025-08-25.mp4 --notorrent --notracker --webseed https://futureporn-b2.b-cdn.net/projektmelody-chaturbate-2025-08-25.mp4'")
echo(" * Create magnet link. ex: `mktorrent --web-seed https://futureporn-b2.b-cdn.net/projektmelody-fansly-2025-08-27.mp4 ~/Documents/voddo/projektmelody-fansly-2025-08-27.mp4`")
echo(" * Create magnet link. ex: `torf ~/Downloads/projektmelody-chaturbate-2025-08-27.mp4 --notorrent --notracker`")
echo(" [Press Enter When Complete...]")
_ = stdin()

View File

@ -1,7 +1,7 @@
{
"name": "futureporn",
"private": true,
"version": "2.4.14",
"version": "2.5.0",
"type": "module",
"scripts": {
"dev": "concurrently npm:dev:serve npm:dev:build npm:dev:worker npm:dev:compose npm:dev:sftp",
@ -101,4 +101,4 @@
"prisma": {
"seed": "tsx prisma/seed.ts"
}
}
}

View File

@ -6,6 +6,7 @@ import {
import { readFile } from 'fs/promises';
import { env } from '../config/env' // adjust this path based on your project structure
import logger from "./logger";
import { getNanoSpawn } from "./nanoSpawn";
let client: S3Client | null = null
@ -24,33 +25,38 @@ export async function uploadFile(
if (!mimetype) throw new Error('uploadFile requires mimetype as fifth param');
logger.debug(`[uploadFile] filePath=${filePath} with key=${key} bucket=${bucket}`);
try {
// Read file content from disk
const fileBuffer = await readFile(filePath);
const spawn = await getNanoSpawn();
await spawn('b2', ['file', 'upload', bucket, filePath, key])
// Upload to S3
await s3Client.send(
new PutObjectCommand({
Bucket: bucket,
Key: key,
Body: fileBuffer,
ContentType: mimetype, // or determine dynamically if needed
}),
);
return key
return key;
// try {
// // Read file content from disk
// const fileBuffer = await readFile(filePath);
} catch (caught) {
if (caught instanceof S3ServiceException) {
logger.error(
`Error from S3 while uploading to ${bucket}. ${caught.name}: ${caught.message}`,
);
} else {
logger.error(`Unexpected error during upload:`, caught);
}
// // Upload to S3
// await s3Client.send(
// new PutObjectCommand({
// Bucket: bucket,
// Key: key,
// Body: fileBuffer,
// ContentType: mimetype, // or determine dynamically if needed
// }),
// );
throw new Error(`Failed to upload ${filePath} to s3://${bucket}/${key}`);
}
// return key;
// } catch (caught) {
// if (caught instanceof S3ServiceException) {
// logger.error(
// `Error from S3 while uploading to ${bucket}. ${caught.name}: ${caught.message}`,
// );
// } else {
// logger.error(`Unexpected error during upload:`, caught);
// }
// throw new Error(`Failed to upload ${filePath} to s3://${bucket}/${key}`);
// }
}

View File

@ -40,7 +40,8 @@ async function getJson(username) {
const formatted = formatTwitterDate(sinceDate);
const { defaultDatasetId } = await client.actor('kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest').call({
searchTerms: [`from:${username} since:${formatted}`]
searchTerms: [`from:${username} since:${formatted}`],
maxItems: 15,
});
// Fetches results from the actor's dataset.