50 lines
1.4 KiB
TypeScript
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);
|
|
};
|