albert.lol/pages/api/s3.tsx
2022-05-02 13:21:55 +02:00

28 lines
No EOL
969 B
TypeScript

import aws, { ConfigurationOptions } from 'aws-sdk';
import { ServiceConfigurationOptions } from 'aws-sdk/lib/service';
import { NextApiRequest, NextApiResponse } from 'next';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
aws.config.s3 = ({
accessKeyId: process.env.ACCESS_KEY,
secretAccessKey: process.env.SECRET_KEY,
region: process.env.REGION,
endpoint: process.env.ENDPOINT,
signatureVersion: 'v4'
});
const s3 = new aws.S3();
const params = {
Bucket: 'i.albrt.hu'
}
const data = await s3.listObjectsV2(params).promise()
let totalsize = data.Contents!.reduce((acc, curr) => {
return acc + curr.Size! / 1024 / 1024 / 1024
}, 0)
res.setHeader('Cache-Control', 's-maxage=86400');
res.status(200).json (JSON.stringify({
'objectCount': data.KeyCount,
'totalSize': (Math.round(totalsize * 100) / 100)
}, null, 2))
}