-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/fu351/Team-17-
- Loading branch information
Showing
4 changed files
with
46 additions
and
134 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,93 +1,45 @@ | ||
"use strict"; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
return new (P || (P = Promise))(function (resolve, reject) { | ||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
}); | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
|
||
const AWS = require('aws-sdk'); | ||
const express = require('express'); | ||
const router = express.Router(); | ||
|
||
AWS.config.update({ | ||
accessKeyId: process.env.AWS_ACCESS_KEY_ID, | ||
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, | ||
region: 'us-east-2', // Replace with your desired AWS region | ||
}); | ||
|
||
router.delete('/reset', async (req, res) => { | ||
const s3 = new AWS.S3(); | ||
const bucketName = '461testbucket'; // Replace with your S3 bucket name | ||
const folderPrefix = 'packages/'; // Replace with the desired folder prefix | ||
|
||
try { | ||
// List all objects in the specified folder | ||
const data = await s3.listObjectsV2({ Bucket: bucketName, Prefix: folderPrefix }).promise(); | ||
|
||
// Check if there are any objects in the folder | ||
if (data.Contents.length === 0) { | ||
return res.status(200).json({ message: 'Registry is already empty' }); | ||
} | ||
|
||
// Prepare the list of objects to be deleted | ||
const objectsToDelete = data.Contents.map(obj => ({ Key: obj.Key })); | ||
|
||
// Delete the objects | ||
await s3.deleteObjects({ | ||
Bucket: bucketName, | ||
Delete: { Objects: objectsToDelete }, | ||
}).promise(); | ||
|
||
res.status(200).json({ message: 'Registry is reset.' }); | ||
} catch (err) { | ||
console.error('Error emptying S3 folder:', err); | ||
res.status(500).json({ error: 'Internal Server Error' }); | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var client_s3_1 = require("@aws-sdk/client-s3"); | ||
// Replace these variables with your AWS credentials and S3 details | ||
var awsAccessKeyId = 'AKIA5DW4GR4VKKNHIXKL'; | ||
var awsSecretAccessKey = '4R3qRglrXLPJFc1xuFaCcilJzPJQYWW2H0Tex9cN'; | ||
var bucketName = 'reddilyb'; | ||
// Create an S3 client | ||
var s3Client = new client_s3_1.S3Client({ | ||
credentials: { | ||
accessKeyId: awsAccessKeyId, | ||
secretAccessKey: awsSecretAccessKey, | ||
}, | ||
region: 'us-east-2', | ||
}); | ||
// Function to delete all objects in the bucket | ||
function deleteAllFiles() { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var listObjectsParams, listObjectsCommand, listObjectsResponse, _i, _a, object, deleteParams, deleteCommand, error_1; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
_b.trys.push([0, 6, , 7]); | ||
listObjectsParams = { Bucket: bucketName }; | ||
listObjectsCommand = new client_s3_1.ListObjectsV2Command(listObjectsParams); | ||
return [4 /*yield*/, s3Client.send(listObjectsCommand)]; | ||
case 1: | ||
listObjectsResponse = _b.sent(); | ||
_i = 0, _a = listObjectsResponse.Contents || []; | ||
_b.label = 2; | ||
case 2: | ||
if (!(_i < _a.length)) return [3 /*break*/, 5]; | ||
object = _a[_i]; | ||
deleteParams = { Bucket: bucketName, Key: object.Key || '' }; | ||
deleteCommand = new client_s3_1.DeleteObjectCommand(deleteParams); | ||
return [4 /*yield*/, s3Client.send(deleteCommand)]; | ||
case 3: | ||
_b.sent(); | ||
console.log("Deleted: ".concat(object.Key)); | ||
_b.label = 4; | ||
case 4: | ||
_i++; | ||
return [3 /*break*/, 2]; | ||
case 5: | ||
console.log('All files deleted successfully.'); | ||
return [3 /*break*/, 7]; | ||
case 6: | ||
error_1 = _b.sent(); | ||
console.error('Error:', error_1); | ||
return [3 /*break*/, 7]; | ||
case 7: return [2 /*return*/]; | ||
} | ||
}); | ||
}); | ||
} | ||
// Run the function to delete all files | ||
deleteAllFiles(); | ||
|
||
module.exports = router; | ||
|
||
|