Files
speckle-server/scratch/delete_old_project_storage.mjs
T

45 lines
1.1 KiB
JavaScript

import {
DeleteObjectsCommand,
ListObjectsV2Command,
S3Client
} from '@aws-sdk/client-s3'
const bucket = 'speckle-server'
const prefixes = [
'assets/20a00d4e0e/',
'viewer-derivatives/20a00d4e0e/',
'preview/20a00d4e0e/',
'previews/20a00d4e0e/'
]
const client = new S3Client({
endpoint: 'http://127.0.0.1:9000',
region: 'us-east-1',
forcePathStyle: true,
credentials: { accessKeyId: 'minioadmin', secretAccessKey: 'minioadmin' }
})
let total = 0
for (const Prefix of prefixes) {
let ContinuationToken = undefined
do {
const listed = await client.send(
new ListObjectsV2Command({ Bucket: bucket, Prefix, ContinuationToken })
)
const objects = (listed.Contents || []).map(({ Key }) => ({ Key }))
if (objects.length) {
await client.send(
new DeleteObjectsCommand({
Bucket: bucket,
Delete: { Objects: objects, Quiet: true }
})
)
total += objects.length
console.log(JSON.stringify({ prefix: Prefix, deleted: objects.length }))
}
ContinuationToken = listed.NextContinuationToken
} while (ContinuationToken)
}
console.log(JSON.stringify({ totalDeleted: total }))