{"version":3,"file":"awsUtils-BEWQc0tQ.js","sources":["../../app/javascript/entrypoints/hook/awsUtils.js"],"sourcesContent":["// import axios from 'axios';\n// import AWS from 'aws-sdk';\n// import AWS from 'aws-sdk';\nimport instance from './axiosUtils';\n\nasync function getAWSCredentials(url) {\n try {\n const response = await instance.get(url);\n return response.data;\n } catch (error) {\n console.error('Error fetching AWS credentials:', error);\n throw error;\n }\n}\n\nasync function uploadImageToS3(credentials, bucketName, key, file) {\n const { accessKeyId, secretAccessKey, sessionToken } = credentials;\n AWS.config.update({\n accessKeyId,\n secretAccessKey,\n sessionToken,\n region: 'us-east-1' // Update to your region\n });\n\n const s3 = new AWS.S3();\n\n const params = {\n Bucket: bucketName,\n Key: key,\n Body: file,\n ContentType: file.type,\n ACL: 'public-read',\n };\n\n try {\n const data = await s3.upload(params).promise();\n return data;\n } catch (error) {\n console.error('Error uploading image to S3:', error);\n throw error;\n }\n}\nfunction generateUniqueKey(baseString) {\n const currentDate = new Date().toISOString().split('T')[0]; // Get current date in YYYY-MM-DD format\n const randomSuffix = Math.random().toString(36).substring(2, 8); // Generate a 6-character random string\n return `${currentDate}/${randomSuffix}-${baseString}`;\n}\n\n/**\n * 上传图片到指定的S3桶\n * \n * @param {string} url - 获取AWS凭证的URL\n * @param {string} bucketName - S3桶的名称\n * @param {string} key - 上传到S3的文件键\n * @param {File} file - 要上传的文件\n * @returns {Promise} 返回上传结果的Promise对象\n * @throws {Error} 上传过程中发生的错误\n */\nexport async function uploadImage(url, bucketName, key, file) {\n try {\n const credentials = await getAWSCredentials(url);\n const result = await uploadImageToS3(credentials, bucketName, generateUniqueKey(key), file);\n return result.Location;\n } catch (error) {\n console.error('Error in uploadImage:', error);\n throw error;\n }\n}"],"names":["getAWSCredentials","url","instance","error","uploadImageToS3","credentials","bucketName","key","file","accessKeyId","secretAccessKey","sessionToken","s3","params","generateUniqueKey","baseString","currentDate","randomSuffix","uploadImage"],"mappings":"qNAKA,eAAeA,EAAkBC,EAAK,CAClC,GAAI,CAEA,OADiB,MAAMC,EAAS,IAAID,CAAG,GACvB,IACnB,OAAQE,EAAO,CACZ,cAAQ,MAAM,kCAAmCA,CAAK,EAChDA,CACd,CACA,CAEA,eAAeC,EAAgBC,EAAaC,EAAYC,EAAKC,EAAM,CAC/D,KAAM,CAAE,YAAAC,EAAa,gBAAAC,EAAiB,aAAAC,CAAc,EAAGN,EACvD,IAAI,OAAO,OAAO,CACd,YAAAI,EACA,gBAAAC,EACA,aAAAC,EACA,OAAQ,WAChB,CAAK,EAED,MAAMC,EAAK,IAAI,IAAI,GAEbC,EAAS,CACX,OAAQP,EACR,IAAKC,EACL,KAAMC,EACN,YAAaA,EAAK,KAClB,IAAK,aACR,EAED,GAAI,CAEA,OADa,MAAMI,EAAG,OAAOC,CAAM,EAAE,QAAS,CAEjD,OAAQV,EAAO,CACZ,cAAQ,MAAM,+BAAgCA,CAAK,EAC7CA,CACd,CACA,CACA,SAASW,EAAkBC,EAAY,CACnC,MAAMC,EAAc,IAAI,OAAO,YAAa,EAAC,MAAM,GAAG,EAAE,CAAC,EACnDC,EAAe,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,EAAG,CAAC,EAC9D,MAAO,GAAGD,CAAW,IAAIC,CAAY,IAAIF,CAAU,EACvD,CAYO,eAAeG,EAAYjB,EAAKK,EAAYC,EAAKC,EAAM,CAC1D,GAAI,CACA,MAAMH,EAAc,MAAML,EAAkBC,CAAG,EAE/C,OADe,MAAMG,EAAgBC,EAAaC,EAAYQ,EAAkBP,CAAG,EAAGC,CAAI,GAC5E,QACjB,OAAQL,EAAO,CACZ,cAAQ,MAAM,wBAAyBA,CAAK,EACtCA,CACd,CACA"}