36 lines
1005 B
TypeScript
36 lines
1005 B
TypeScript
import { v2 as cloudinary } from 'cloudinary';
|
|
|
|
// Configure Cloudinary
|
|
cloudinary.config({
|
|
cloud_name: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
|
|
api_key: process.env.CLOUDINARY_API_KEY,
|
|
api_secret: process.env.CLOUDINARY_API_SECRET,
|
|
secure: true,
|
|
});
|
|
|
|
export default cloudinary;
|
|
|
|
/**
|
|
* Uploads a file buffer or base64 to Cloudinary
|
|
*/
|
|
export async function uploadToCloudinary(file: File, folder: string = 'partners'): Promise<string> {
|
|
const arrayBuffer = await file.arrayBuffer();
|
|
const buffer = Buffer.from(arrayBuffer);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
cloudinary.uploader.upload_stream(
|
|
{
|
|
folder: `mugladijital/${folder}`,
|
|
resource_type: 'auto',
|
|
},
|
|
(error, result) => {
|
|
if (error) {
|
|
reject(error);
|
|
} else {
|
|
resolve(result?.secure_url || '');
|
|
}
|
|
}
|
|
).end(buffer);
|
|
});
|
|
}
|