35 lines
901 B
JavaScript
Executable file
35 lines
901 B
JavaScript
Executable file
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
import { GetObjectCommand, S3Client } from "@aws-sdk/client-s3";
|
|
import { privateKey } from '../../config/privateKeys.js';
|
|
|
|
const useGetSignedUrl = (key,bucketName) => {
|
|
const client = new S3Client({
|
|
credentials: {
|
|
accessKeyId: privateKey.S3_ACCESS_KEY,
|
|
secretAccessKey: privateKey.S3_SECRET_KEY
|
|
},
|
|
region: privateKey.S3_REGION
|
|
})
|
|
|
|
const getUrl = async (key) => {
|
|
try {
|
|
const url = await getSignedUrl(
|
|
client,
|
|
new GetObjectCommand({
|
|
Bucket: bucketName,
|
|
Key: key,
|
|
}),
|
|
{ expiresIn: 3600 }
|
|
);
|
|
return url;
|
|
} catch (error) {
|
|
return error;
|
|
}
|
|
};
|
|
return getUrl(key);
|
|
|
|
};
|
|
|
|
export {
|
|
useGetSignedUrl
|
|
} |