我有一个 AWS Cloud Formation 模板。在此模板中,我设置了多个参数。\n现在,我想做的是将参数字段留空,但允许用户选择\n特定参数,例如安全组。现在我想做的是,如果 \na 用户没有选择任何内容(字段保持为空),我希望它给出一条错误消息,说明 \n当您想要继续时需要字段并阻止用户继续,因为它发生在您不输入堆栈名称(请参见下面的屏幕截图)。
\n\n\n\n如何对云形成模板中的任何参数执行此操作???我已经搜索过,但没有找到任何关于用户输入验证的内容 \xe2\x80\xa6
\n\n我知道我可以为所有内容设置默认值,但我不想设置默认值并特别强制用户在这种情况下进行选择 \xe2\x80\xa6
\n我正在尝试在云形成模板的元数据部分使用 SecureString,但它引发了以下错误:
不支持 SSM 安全参考:[AWS::EC2::Instance/Metadata/AWS::CloudFormation::Init/config/files/~/.ssh/content]
这是我的代码:
Resources:
LinuxEC2Instance:
Type: AWS::EC2::Instance
Metadata:
AWS::CloudFormation::Init:
config:
files:
~/.ssh:
content: !Sub |
'{{resolve:ssm-secure:/credentials/ansible:1}}'
mode: "000644"
owner: "ansible"
group: "ansible"
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?我希望在 Cloud Formation 模板中使用安全字符串引用吗?
我在尝试使用 Laravel 中的 StoreAs 方法来存储尚未由 html 文件处理程序附加并已通过“文件”类型的请求发送的图像时,我的智慧已经尽头。
我使用croppie创建了一个裁剪图像:https ://foliotek.github.io/Croppie/
但是,croppie 似乎并没有为我提供一个简单的解决方案来将裁剪后的图像附加到标准的 html 文件处理程序。所以我决定将图像信息和图像名称附加到一个隐藏的文件元素,并将它与我的 post 请求一起发送到我的 Laravel 实例。但是,我现在的问题是我想使用 StoreAs 方法,因为它允许我将我的图像附加到我可以检索的特定 url,在检索大量图像时,我觉得这非常有用。
Laravel 中的 StoreAs() 方法显然只允许使用 UploadedFile 类型的对象,该对象基于 Symfony\Component\HttpFoundation\File\UploadedFile 类。当在 html 中使用文件处理程序时,这个 UploadedFile 对象显然是与文件一起自动发送的。
我有一个类似的base64编码图像:数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAgAElEQVR4nOy9d3RUZ5ruuyvnnJNyzpEgcg4mO + e23U7t3Hl6wu2ZOTPn3Dtn8unTTTAYMGBjbDAYCZRBApRIkkpSqZ和图像名。
我发现我可以自己在 Laravel 中创建一个 UploadedFile 对象,但我很难理解我必须如何创建这个 UploadedFile,然后使用 StoreAs() 方法将它链接到生成的 url。
我在这里找到了这个链接:Laravel - UploadedFile 实例的文件路径 而这个在这里:https : //gist.github.com/m241802/0b5d0a98318304ff08cf
但是我仍然不完全了解如何从我拥有的图像和图像名称中创建一个 UploadedFile 对象。
有谁知道如何做到这一点?或者甚至可以为我的问题提出更优雅的解决方案?也许有人有更好的解决方案,说明在使用了croppie 库后如何在post 请求中发送一个File 对象?
在此先感谢您的帮助!
我是javascript的新手,我有一个问题,使用reduce和concat函数将几个数组展平为一个完整的数组.
var array = [ [1, 3], [6, 6], [3, 3] ];
var finishedArray = function(array) {
var reducedArray = {};
var completeArray = {};
for (var i = 0; i < array.length; i++) {
reducedArray[i] = array[i].reduce(function (a, b) {
return a + b;
});
completeArray = reducedArray[i].concat(reducedArray[i + 1]);
}
return completeArray;
}
console.log(finishedArray(array));`
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:completeArray = reducedArray[i].concat(reducedArray[i + 1]);
TypeError: undefined is not a function
这是为什么???
我想知道如何获取边缘以及根据特定查询过滤的所有节点?
我在 Cytoscape.js 页面上看到了这个示例: https: //js.cytoscape.org/#selectors
// get node j and the edges coming out from it
cy.elements('node#j, edge[source = "j"]');
Run Code Online (Sandbox Code Playgroud)
现在我想对所有节点以及所有边都有共同的特定查询属性执行相同的操作。
我按照上面的想法尝试了一个查询,如下所示:
const query = 'node[ nodeType = "Car"]';
graphElements = cy.elements(query);
Run Code Online (Sandbox Code Playgroud)
这给了我所有节点类型为“Car”但没有边缘的节点。如何获取所有边以及选定的节点查询?
更新:
我只想返回适合输入的给定用户名的四个字符的所有文档。因此,如果我有一个用户名列表并输入 mango3333,则应返回所有以“mang”开头的用户名。我为此使用了正则表达式,现在我只想返回例如该文档的用户名和 ID 而不是所有字段,但它返回所有字段。
示例文档如下所示:
{"_id":{"$oid":"5d75299b0d01830"},
"User":
{ "username":"mango",
"userid":"8b8d25d3-3fe6-4d1c",
"token":"token",
"pw":"password",
"statusmessage":"",
"lastlogin":{"$date":{"$numberLong":"1567959451354"}},
"registered":{"$date":{"$numberLong":"1567959451354"}
}
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
const db = dbClient.db(dbName);
const regexp = new RegExp(username, "gi");
db.collection(collectionName).find({ "User.Username": regexp }, { "User.Username": 1, "User.UserID": 1, "User.Statusmessage": 1 })
.toArray()
.then(result => {
console.log(result);
})
.catch(err => console.error(`Failed to get results: ${err}`));
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
arrays ×1
concat ×1
croppie ×1
cytoscape.js ×1
edges ×1
file ×1
filter ×1
image ×1
javascript ×1
laravel ×1
metadata ×1
mongodb ×1
nodes ×1
php ×1
projection ×1
reduce ×1
regex ×1
securestring ×1
ssm ×1
templates ×1
user-input ×1
validation ×1