我正试图使用Froala的imgageUploadToS3方法将图像放入我的AWS桶中。
整天都在为此而挣扎,但进展甚微。
在我的节点环境中,我使用node SDK生成一个散列:
async getHash(req, res) {
const configs = {
bucket: 'bucket',
keystart: 'deskbook-uploads/',
acl: 'public-read',
accessKey: process.env.AWS_S3_ID,
secretKey: process.env.AWS_S3_SECRET
}
const s3Hash = FroalaEditor.S3.getHash(configs);
res.json(s3Hash);
},
散列正在到达我的客户端,很酷,这里没有问题。
现在我用这个初始化Froala编辑器
function initializeFroala(hashedData) {
new FroalaEditor('textarea', {
theme: 'dark',
imageAllowedTypes: ['jpeg', 'jpg', 'png'],
imageUploadToS3: hashedData,
imageUploadURL: false,
events: {
},
toolbarButtons: ['fullscreen', 'strikeThrough', 'insertImage', '|',
'fontFamily', 'fontSize', 'color', 'inlineStyle', 'paragraphStyle', 'textColor', 'backgroundColor', '|', 'paragraphFormat', 'align',
'formatOL', 'formatUL', 'outdent', 'indent', 'quote', '-', 'insertLink', 'insertTable', '|',
'emoticons', 'specialCharacters', 'insertHR', 'selectAll', 'clearFormatting', '|']
});
}
现在,当我选择插入图像按钮并进行选择时,上传栏闪烁片刻,然后显示";分析响应失败">
控制台显示一个400错误请求。
这是我在S3上的CORS配置。
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"http://localhost:3000"
],
"ExposeHeaders": []
}
]
我已经用这个达到了极限。也许我错过了一些非常简单的东西,不确定。不管怎样,Froala的文档都有点困难,因为它不是最详细的。
感谢任何帮助或想法。
我在keyStart道具上缺少camel-case。
keyStart: 'deskbook-uploads/',