|
@@ -899,6 +899,55 @@ export default () => {
|
|
|
reader.readAsArrayBuffer(file)
|
|
|
}
|
|
|
|
|
|
+ const getFile = (url: string): Promise<{ data: any }> => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ // 检查 AWS SDK 是否可用
|
|
|
+ if (typeof window !== 'undefined' && !window.AWS) {
|
|
|
+ reject(new Error('AWS SDK not available'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const credentials = {
|
|
|
+ accessKeyId: 'AKIATLPEDU37QV5CHLMH',
|
|
|
+ secretAccessKey: 'Q2SQw37HfolS7yeaR1Ndpy9Jl4E2YZKUuuy2muZR',
|
|
|
+ } // 秘钥形式的登录上传
|
|
|
+
|
|
|
+ window.AWS.config.update(credentials)
|
|
|
+ window.AWS.config.region = 'cn-northwest-1' // 设置区域
|
|
|
+
|
|
|
+ const s3 = new window.AWS.S3({ params: { Bucket: 'ccrb' } })
|
|
|
+
|
|
|
+ // 解析文件名
|
|
|
+ const bucketUrl = 'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/'
|
|
|
+ if (!url.startsWith(bucketUrl)) {
|
|
|
+ reject(new Error('Invalid S3 URL format'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const name = decodeURIComponent(url.split(bucketUrl)[1])
|
|
|
+ if (!name) {
|
|
|
+ reject(new Error('Could not extract file name from URL'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ const params = {
|
|
|
+ Bucket: 'ccrb',
|
|
|
+ Key: name,
|
|
|
+ }
|
|
|
+
|
|
|
+ s3.getObject(params, (err: any, data: any) => {
|
|
|
+ if (err) {
|
|
|
+ console.error('S3 getObject error:', err, err.stack)
|
|
|
+ reject(err)
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ console.log('S3 getObject success:', data)
|
|
|
+ resolve({ data: data.Body })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
return {
|
|
|
importSpecificFile,
|
|
|
importJSON,
|
|
@@ -906,5 +955,6 @@ export default () => {
|
|
|
readJSON,
|
|
|
exportJSON2,
|
|
|
exporting,
|
|
|
+ getFile
|
|
|
}
|
|
|
}
|