AWS 放大:将文件上传到存储时出错



我正在尝试将用户的私人文件上传到 AWS 存储,但我面临 2 个问题,

a. Storage.put throws a `Uncaught (in promise) No plugin found in Storage for the provider` on my local machine
b. when I publish the application to aws, I get `a r[a].trim is not a function, the server responded with a status of 403 (Forbidden)` error.

我正在使用"@aws-amplify/storage": "^3.1.9", "@aws-amplify/ui-vue": "^0.2.5", "aws-amplify": "^3.0.11"。我之前已更新到上述库的最新版本,但我遇到了同样的问题。

生产错误:

[WARN] 52:13.681 AWSS3Provider - error uploading TypeError: r[a].trim is not a function
at P (chunk-vendors.3a69780c.js:96)
at e.<anonymous> (chunk-vendors.3a69780c.js:96)
at c (chunk-vendors.3a69780c.js:111)
at Object.next (chunk-vendors.3a69780c.js:111)
at s (chunk-vendors.3a69780c.js:111)

代码(为简洁起见进行了编辑(:

import { Auth } from 'aws-amplify';
import Storage from "@aws-amplify/storage";
var i;
for (i = 0; i < validFilesData.length; i++) 
{
let objectToBeUploaded=validFilesData[i];
let config={level: 'private', contentType: 'video/mp4',};
let result =await Storage.put('test.mp4', objectToBeUploaded, config);
}

AWS 导出.js:

const awsmobile = {
"aws_project_region": "us-east-1",
"aws_cognito_identity_pool_id": "us-east-1:d5bdd6ce-4ef4-4d25-81ac-47bcf08d9007",
"aws_cognito_region": "us-east-1",
"aws_user_pools_id": "us-east-1_b6sLX6k7X",
"aws_user_pools_web_client_id": "6plmdr9nj2oo7hdofugbpctd6l",
"oauth": {},
"aws_appsync_graphqlEndpoint": "https://yoxnhmkqojgsjjsmdudy5ytuli.appsync-api.us-east-1.amazonaws.com/graphql",
"aws_appsync_region": "us-east-1",
"aws_appsync_authenticationType": "AMAZON_COGNITO_USER_POOLS",
"aws_cloud_logic_custom": [
{
"name": "priceperhour",
"endpoint": "https://qirua8wpa3.execute-api.us-east-1.amazonaws.com/dev",
"region": "us-east-1"
},
{
"name": "PaymentIntent",
"endpoint": "https://kalgi2en0k.execute-api.us-east-1.amazonaws.com/dev",
"region": "us-east-1"
},
{
"name": "CreatePaymentIntent",
"endpoint": "https://dplo9lvadc.execute-api.us-east-1.amazonaws.com/dev",
"region": "us-east-1"
}
],
"aws_user_files_s3_bucket": "vidaudtranscriptionb772eac002c6449096461a128cad70417-dev",
"aws_user_files_s3_bucket_region": "us-east-1",
"aws_content_delivery_bucket": "vidaudtranscription-20200703222552-hostingbucket-dev",
"aws_content_delivery_bucket_region": "us-east-1",
"aws_content_delivery_url": "http://vidaudtranscription-20200703222552-hostingbucket-dev.s3-website-us-east-1.amazonaws.com"
};
export default awsmobile;

主.js:

import Amplify,{Storage} from 'aws-amplify';
import '@aws-amplify/ui-vue';
import aws_exports from './aws-exports';
Amplify.configure(aws_exports);

我在这里为 aws 放大团队添加了一个问题

我通过使用承诺而不是 async\await 来改变这项工作let result =await Storage.put('test.mp4', objectToBeUploaded, config);更改为

Storage.put('test.mp4', objectToBeUploaded,config).then(async function(result) 
{console.log(`result : ${JSON.stringify(result)}`);})

相关内容