forked from yash/test-repo
first commit
This commit is contained in:
74
s3.js
Normal file
74
s3.js
Normal file
@@ -0,0 +1,74 @@
|
||||
const { S3Client, PutObjectCommand, ListBucketsCommand, GetObjectCommand } = require('@aws-sdk/client-s3');
|
||||
// const { fromIni } = require('@aws-sdk/credential-providers');
|
||||
|
||||
|
||||
const minioClient = new S3Client({
|
||||
endpoint: 'http://localhost:9000/test', // MinIO server URL
|
||||
region: 'us-east-1', // Required but not used by MinIO
|
||||
credentials: {
|
||||
accessKeyId: 'minioadmin', // Default MinIO credentials
|
||||
secretAccessKey: 'minioadmin'
|
||||
},
|
||||
forcePathStyle: true, // REQUIRED for MinIO
|
||||
sslEnabled: false // Set to true if using HTTPS
|
||||
});
|
||||
|
||||
// List all buckets
|
||||
async function listBuckets() {
|
||||
try {
|
||||
const command = new ListBucketsCommand({});
|
||||
const response = await minioClient.send(command);
|
||||
console.log('Buckets:', response.Buckets);
|
||||
return response.Buckets;
|
||||
} catch (error) {
|
||||
console.error('Error listing buckets:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Upload a file
|
||||
async function uploadFile(bucketName, objectName, fileContent) {
|
||||
try {
|
||||
const command = new PutObjectCommand({
|
||||
Bucket: bucketName,
|
||||
Key: objectName,
|
||||
Body: fileContent,
|
||||
ContentType: 'text/plain'
|
||||
});
|
||||
|
||||
const response = await minioClient.send(command);
|
||||
console.log('File uploaded:', response);
|
||||
return response;
|
||||
} catch (error) {
|
||||
console.error('Upload error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Download a file
|
||||
async function downloadFile(bucketName, objectName) {
|
||||
try {
|
||||
const command = new GetObjectCommand({
|
||||
Bucket: bucketName,
|
||||
Key: objectName
|
||||
});
|
||||
|
||||
const response = await minioClient.send(command);
|
||||
const content = await response.Body.transformToString();
|
||||
console.log('File content:', content);
|
||||
return content;
|
||||
} catch (error) {
|
||||
console.error('Download error:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Example usage
|
||||
(async () => {
|
||||
// Create a bucket first (you need to create buckets via console or CLI)
|
||||
const buckets = await listBuckets();
|
||||
// console.log('Available buckets:', buckets);
|
||||
|
||||
// Upload a file
|
||||
await uploadFile('cap-web', 'textfiles/test2.txt', 'Hello MinIO from Node.js!');
|
||||
|
||||
// // Download the file
|
||||
// await downloadFile('cap-web', 'test.txt');
|
||||
})();
|
||||
Reference in New Issue
Block a user