我正在使用npm包keystone-storage-adapter-s3。在某种情况下,我试图将图像上传到AWS S3桶,然后使用Keystone CMS检索它们作为网站内容的一部分。我对AWS S3相当陌生,但正在尝试。
下面是有问题的图像模型。
const keystone = require('keystone');
const Types = keystone.Field.Types;
const Image = new keystone.List('Image');
const storage = new keystone.Storage({
adapter: require('keystone-storage-adapter-s3'),
s3: {
key: process.env.S3_KEY, // required; defaults to process.env.S3_KEY
secret: process.env.S3_SECRET, // required; defaults to process.env.S3_SECRET
bucket: process.env.S3_BUCKET, // required; defaults to process.env.S3_BUCKET
region: process.env.S3_REGION, // optional; defaults to process.env.S3_REGION, or if that's not specified, us-east-1
uploadParams: { // optional; add S3 upload params; see below for details
ACL: 'public-read',
},
},
schema: {
bucket: true, // optional; store the bucket the file was uploaded to in your db
etag: true, // optional; store the etag for the resource
path: true, // optional; store the path of the file in your db
url: true, // optional; generate & store a public URL
},
});
Image.add({
name: { type: String },
file: { type: Types.File, storage: storage },
});
Image.register();
我相信我已经填写了区域、桶名、secret(随机安全字符串),甚至创建了一个新的密钥,该密钥也安全地存储在。env文件中。
packages.js:33 POST http://localhost:3000/keystone/api/images/5bf2c27e05ba79178cd7d2be 500 (Internal Server Error)
a @ packages.js:33
i @ packages.js:33
List.updateItem @ admin.js:22863
updateItem @ admin.js:15021
r @ packages.js:16
a @ packages.js:14
s @ packages.js:14
d @ packages.js:14
v @ packages.js:14
r @ packages.js:17
processEventQueue @ packages.js:14
r @ packages.js:16
handleTopLevel @ packages.js:16
i @ packages.js:16
perform @ packages.js:17
batchedUpdates @ packages.js:16
i @ packages.js:16
dispatchEvent @ packages.js:16
我在node_modules/keystone/fields/types/file/filetype.js
中找到了正在使用的调试包,并启用了它。我在尝试上载映像时收到以下调试消息。
$ DEBUG=keystone:fields:file node keystone.js
------------------------------------------------
KeystoneJS v4.0.0 started:
keystone-s3 is ready on http://0.0.0.0:3000
------------------------------------------------
GET /keystone/images/5bf2c27e05ba79178cd7d2be 200 17.446 ms
GET /keystone/api/images/5bf2c27e05ba79178cd7d2be?drilldown=true 304 3.528 ms
keystone:fields:file [Image.file] Validating input: upload:File-file-1001 +0ms
keystone:fields:file [Image.file] Validation result: true +1ms
keystone:fields:file [Image.file] Uploading file for item 5bf2c27e05ba79178cd7d2be: { fieldname: 'File-file-1001',
originalname: 'oof.PNG',
encoding: '7bit',
mimetype: 'image/png',
destination: 'C:\\Users\\Dylan\\AppData\\Local\\Temp',
filename: '42c161c1c36a84a244a2cf09d327afd4',
path:
'C:\\Users\\Dylan\\AppData\\Local\\Temp\\42c161c1c36a84a244a2cf09d327afd4',
size: 6684 } +0ms
POST /keystone/api/images/5bf2c27e05ba79178cd7d2be 500 225.027 ms
这条消息看起来很有希望,所以我将继续查看这条消息,看看是否可以调试更多信息。
搜索还在继续。
我把我的“钥匙”和“秘密”搞混了。
根据keystone-storage-adapter-s3包,需要您的“密钥”和“秘密”。由于对AWS和web开发缺乏经验,我认为秘密是一个随机的安全字符串(就像你会用cookie签名一样),而密钥是我的秘密密钥。
错了
Keystone 通过 HTTP 为 OpenStack 家族项目提供身份认证、授权和服务发现机制。这是 HTTP 接口给现有身份系统最常见的部署,例如 LDAP。
Keystone ConceptMap(概念图),是一款国产的图像式思考辅助工具软件,可以帮助您进行概念分析、相关性分析,整理知识点的相互关系,构建基于图像的可视 化知识表征,更好的帮助我们理解和记忆,可用在知识管理、思维整理、教育教学等领域。Keystone ConceptMap是免费的,鼓励更多的老师、学生和知识工作者下载使用。
问题内容: 通过AngularJS,我可以使用或检测用户是否输入了该字段。但是,我只想在用户离开字段区域之后进行客户端验证。这是因为,当用户输入电子邮件或电话之类的字段时,他们总是会抛出错误,直到他们完成完整的电子邮件键入为止,这并不是最佳的用户体验。 例 更新: Angular现在附带了一个自定义模糊事件:https : //docs.angularjs.org/api/ng/directive
我最近从我的index.txt文件中删除了一个条目。是因为那个吗?
问题内容: 我在视图中有一个表单,该表单执行自动完成和gmap本地化的ajax部分处理。我的支持bean实例化了一个实体对象“ Address”,并向该对象引用了表单的输入: 自动补全和map ajax请求可以正常工作,然后再提交时处理整个表单。如果验证失败,则即使无法在视图中更新fullAddress字段(即使在ajax请求之后在备用bean上正确设置了其值),ajax仍然可以正常工作。 如果刷
我已经重新安装了node-sass,但这不起作用。