Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/fu351/Team-17-
Browse files Browse the repository at this point in the history
  • Loading branch information
fu351 committed Dec 14, 2023
2 parents 4b3d116 + 3c78f3c commit 257b3ee
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 134 deletions.
4 changes: 2 additions & 2 deletions delete.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const s3 = new AWS.S3();


//delete specific package from s3 bucket based on packageID
router.delete('/package/{id}', (req, res) => {
router.delete('/package/:id', (req, res) => {
const packageID = req.params.id;
const params = {
Bucket: '461testbucket', //replace with bucket name
Expand All @@ -32,7 +32,7 @@ router.delete('/package/{id}', (req, res) => {
});

//delete every version of a package in the s3 bucket that matches the package name
router.delete('/package/byName/{name}', (req, res) => {
router.delete('/package/byName/:name', (req, res) => {
const packageName = req.params.name;
const params = {
Bucket: '461testbucket', //replace with bucket name
Expand Down
2 changes: 2 additions & 0 deletions index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import express from 'express';
import searchRoutes from './search.js';
import uploadRoutes from './upload_update_download_rate.js';
import deleteRoutes from './delete.js';
import resetRoute from './reset.js'
import bodyParser from 'body-parser';

import cors from 'cors';
Expand All @@ -14,5 +15,6 @@ app.use(express.json());
app.use('/', searchRoutes);
app.use('/', uploadRoutes);
app.use('/', deleteRoutes);
app.use('/', resetRoute);

app.listen(3000, () => console.log('Server running on port 3000'));
132 changes: 42 additions & 90 deletions reset.js
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;


42 changes: 0 additions & 42 deletions reset.ts

This file was deleted.

0 comments on commit 257b3ee

Please sign in to comment.