A powerful Node.js package for cloud file operations using AWS S3
npm install bosscloudmedia
npm install bosscloudmediav2
`
Generating an API Key
To use BossCloudMedia, you'll need an API key. Follow these steps to obtain one:
1. Compose an email to contact@bmsinfoglobal.com
2. Include the following information in your email:
- Subject: "API Key Request for BossCloudMedia"
- Body: Your company name
- Any specific requirements or questions you may have
The BossCloudMedia team will review your request and provide you with an API key along with any additional instructions or information.
Usage
$3
Once you have your API key, import and initialize the BossCloudMedia class:
`javascript
import BossCloudMedia from 'bosscloudmediav2';
const cloudMedia = new BossCloudMedia({ api_key: 'your_api_key_here' });
`
$3
To upload a single file, use the upload method:
`javascript
async function uploadSingleFile() {
try {
const filePath = '/path/to/your/file.jpg';
const options = {
publicId: 'unique_file_identifier',
quality: 80 // optional, defaults to 100
};
const result = await cloudMedia.upload(filePath, options);
console.log('Upload successful:', result);
} catch (error) {
console.error('Upload failed:', error);
}
}
uploadSingleFile();
`
You can also upload a file from a URL:
`javascript
async function uploadFromURL() {
try {
const imageUrl = 'https://example.com/image.jpg';
const options = {
publicId: 'unique_file_identifier',
quality: 90 // optional
};
const result = await cloudMedia.upload(imageUrl, options);
console.log('Upload from URL successful:', result);
} catch (error) {
console.error('Upload from URL failed:', error);
}
}
uploadFromURL();
`
$3
To delete a single file, use the delete method:
`javascript
async function deleteSingleFile() {
try {
const fileName = 'file_to_delete.jpg';
const result = await cloudMedia.delete(fileName);
console.log('Deletion successful:', result);
} catch (error) {
console.error('Deletion failed:', error);
}
}
deleteSingleFile();
`
$3
To delete multiple files, pass an array of file names to the delete method:
`javascript
async function deleteMultipleFiles() {
try {
const fileNames = ['file1.jpg', 'file2.png', 'file3.jpg'];
const results = await cloudMedia.delete(fileNames);
console.log('Multiple deletions results:', results);
} catch (error) {
console.error('Multiple deletions failed:', error);
}
}
deleteMultipleFiles();
`
$3
To retrieve a list of all files in your cloud storage, use the listFiles method:
`javascript
async function listAllFiles() {
try {
const files = await cloudMedia.listFiles();
console.log('Files in storage:', files);
} catch (error) {
console.error('Failed to list files:', error);
}
}
listAllFiles();
`
Error Handling
All methods may throw errors. It's important to use try-catch blocks to handle these errors gracefully:
`javascript
async function errorHandlingExample() {
try {
// Trying to upload an invalid file
await cloudMedia.upload('invalid_path.jpg', { publicId: 'test' });
} catch (error) {
console.error('Expected error:', error.message);
}
try {
// Trying to delete with an invalid filename
await cloudMedia.delete('');
} catch (error) {
console.error('Expected error:', error.message);
}
}
errorHandlingExample();
`
API Reference
$3
Creates a new instance of BossCloudMedia.
Parameters:
- config (Object): Configuration object
- api_key (String): Your API key for authentication
$3
Uploads a single file to the cloud storage.
Parameters:
- file (string): The file path or URL to upload
- options (Object): Upload options
- publicId (string): A unique identifier for the file (required)
- quality (number, optional): Image quality from 1 to 100 (default: 100)
Returns:
- A Promise that resolves with the URL of the uploaded file.
$3
Deletes a file or multiple files from the cloud storage.
Parameters:
- fileName (string | Array): The name of the file to delete, or an array of file names to delete multiple files
Returns:
- A Promise that resolves with the deletion response or an array of deletion responses.
$3
Retrieves a list of all files in the cloud storage.
Returns:
- A Promise that resolves with an array of FileInfo objects. Each object contains:
- name (string): The name of the file
- url (string): The URL of the file
- lastModified (number): The last modified timestamp in milliseconds
- size` (string): The size of the file