storage: add getStatus hook

This commit is contained in:
Girish Ramakrishnan
2025-08-04 10:47:00 +02:00
parent 28e23dfdab
commit 7ef9e7eb51
9 changed files with 74 additions and 22 deletions

View File

@@ -10,6 +10,7 @@ exports = module.exports = {
injectPrivateFields,
getAvailableSize,
getStatus,
upload,
exists,
@@ -156,6 +157,23 @@ async function getAvailableSize(apiConfig) {
return Number.POSITIVE_INFINITY;
}
async function getStatus(apiConfig) {
assert.strictEqual(typeof apiConfig, 'object');
const s3 = createS3Client(apiConfig, { retryStrategy: RETRY_STRATEGY });
const listParams = {
Bucket: apiConfig.bucket,
Prefix: path.join(apiConfig.prefix, 'snapshot'),
MaxKeys: 1
};
const [listError] = await safe(s3.listObjectsV2(listParams));
if (listError) return { status: 'inactive', message: `Error listing objects. ${formatError(listError)}` };
return { state: 'active' };
}
async function upload(apiConfig, remotePath) {
assert.strictEqual(typeof apiConfig, 'object');
assert.strictEqual(typeof remotePath, 'string');