클라우디너리는 SaaS 기술 회사이다. 클라우드 기반 이미지 및 비디오 관리 서비스를 제공한다. 사용자는 웹사이트와 앱용 이미지와 비디오를 업로드, 저장, 관리, 조작, 전송할 수 있다.
const config = {
cloudinaryName: process.env.CLOUDINARY_NAME,
cloudinaryKey: process.env.CLOUDINARY_KEY,
cloudinarySecret: process.env.CLOUDINARY_SECRET,
};
export default config;
CLOUDINARY_NAME=
CLOUDINARY_KEY=
CLOUDINARY_SECRET=
import config from '../config';
const { cloudinaryName, cloudinaryKey } = config;
//
async upload(imageFile) {
const url = `https://api.cloudinary.com/v1_1/${cloudinaryName}/image/upload/`;
const formData = new FormData();
formData.append('api_key', cloudinaryKey);
formData.append('upload_preset', 'sn2yqsne');
formData.append('timestamp', (Date.now() / 1000) || 0);
formData.append('file', imageFile);
const configOfUpload = {
header: { 'Content-Type': 'multipart/form-data' },
};
const { data } = await axios.post(url, formData, configOfUpload);
return data.url;
}
async uploadImage(imageFile) {
const imageUrl = await apiService.upload(imageFile);
this.imageUrl = imageUrl;
this.publish();
}
const handleImageChange = (e) => {
shopStore.uploadImage(e.target.files[0]);
};
const onSubmit = async (data) => {
const image = shopStore.imageUrl;
const {
name, description, price, inventory,
} = data;
await shopStore.registerProduct({
name, description, image, price, inventory,
});
navigate('/admin/management');
};
//
<div>
<label htmlFor="input-product-image">상품 이미지</label>
<input
id="input-product-image"
type="file"
onChange={handleImageChange}
/>
</div>
<img src={shopStore.imageUrl} alt="이미지" />