@gune/storage-cloudinary
v0.1.0
Published
Cloudinary storage strategy with transformations
Maintainers
Readme
@gune/storage-cloudinary
Cloudinary storage strategy for the Gune Storage system.
Installation
npm install @gune/storage-cloudinary cloudinaryUsage
Standalone
import { CloudinaryStorageStrategy } from '@gune/storage-cloudinary';
const storage = new CloudinaryStorageStrategy({
cloudName: process.env.CLOUDINARY_CLOUD_NAME,
apiKey: process.env.CLOUDINARY_API_KEY,
apiSecret: process.env.CLOUDINARY_API_SECRET,
folder: 'uploads',
});
// Upload a file
const result = await storage.store(
Buffer.from('image data'),
'photo.jpg',
{ contentType: 'image/jpeg' }
);With NestJS
import { StorageModule } from '@gune/storage-nestjs';
import { CloudinaryStorageStrategy } from '@gune/storage-cloudinary';
@Module({
imports: [
StorageModule.forRoot({
strategy: new CloudinaryStorageStrategy({
cloudName: process.env.CLOUDINARY_CLOUD_NAME,
apiKey: process.env.CLOUDINARY_API_KEY,
apiSecret: process.env.CLOUDINARY_API_SECRET,
folder: 'uploads',
}),
}),
],
})
export class AppModule {}Configuration
CloudinaryStorageStrategyConfig
cloudName: Your Cloudinary cloud nameapiKey: Your Cloudinary API keyapiSecret: Your Cloudinary API secretfolder?: Default folder for uploadsuseFilename?: Preserve original filename (default: true)uniqueFilename?: Add unique suffix to filenames (default: false)resourceType?: Resource type ('image', 'video', 'raw', 'auto')
Features
- Image and video upload
- Automatic image optimization
- Transformation support
- Responsive image delivery
- CDN distribution
- File retrieval
- File deletion
- Metadata support
Image Transformations
// Get URL with transformations
const url = await storage.getUrl(key, {
transformation: {
width: 300,
height: 300,
crop: 'fill',
quality: 'auto',
fetch_format: 'auto',
},
});Use Cases
- Image-heavy applications
- Media management systems
- User profile photos
- Product catalogs
- Video streaming
License
MIT © BUDDGUN92
