import axios from 'axios'; const UPLOAD_ENDPOINT = process.env.REACT_APP_UPLOAD_SERVICE_URL || "https://gw-dev.fiskerdps.com/ota_update"; export const getCancelToken = () => { const token = axios.CancelToken; return token.source(); } export const uploadFile = (file, data, token, onProgress, cancelToken) => { const form = new FormData(); let options = { method: "POST", headers: { "Content-Type": "multipart/form-data", "Authorization": `Bearer ${token}`, }, cancelToken, }; if (onProgress) { options = { ...options, onUploadProgress: (event) => { onProgress(Math.min(99, Math.floor((event.loaded / event.total) * 100))); } } } for (let key in data) { form.append(key, data[key]); } form.append("file", file); return axios.post(`${UPLOAD_ENDPOINT}/upload`, form, options); };