Files
turnosxpress/file-manager/src/services/oracleStorageService.ts
T
2026-07-16 20:48:43 -03:00

50 lines
1.4 KiB
TypeScript

import { readFileSync } from "fs";
import { SimpleAuthenticationDetailsProvider, Region } from "oci-common";
import { ObjectStorageClient } from "oci-objectstorage";
const userOcId = process.env.USER_OCID!;
const tenancyOcId = process.env.TENANCY_OCID!;
const privateKeyPath = process.env.PRIVATE_KEY_PATH!;
const fingerprint = process.env.FINGERPRINT!;
const namespace = process.env.NAMESPACE!;
if (!userOcId || !tenancyOcId || !privateKeyPath || !fingerprint || !namespace) {
throw new Error(
"Faltan variables de entorno de Oracle (USER_OCID, TENANCY_OCID, PRIVATE_KEY_PATH, FINGERPRINT, NAMESPACE)"
);
}
const privateKey = readFileSync(privateKeyPath, "utf-8");
const region = Region.fromRegionId("sa-saopaulo-1");
const provider = new SimpleAuthenticationDetailsProvider(
tenancyOcId,
userOcId,
fingerprint,
privateKey,
null,
region
);
const client = new ObjectStorageClient({ authenticationDetailsProvider: provider });
export const subirArchivo = async (bucketName: string, objectName: string, data: Buffer) => {
const request = {
namespaceName: namespace,
bucketName,
objectName,
putObjectBody: data,
};
return client.putObject(request);
};
export const descargarArchivo = async (bucketName: string, objectName: string) => {
const request = {
namespaceName: namespace,
bucketName,
objectName,
};
return client.getObject(request);
};