我正在尝试使用mongorestore
gzip文件恢复数据库.数据库大小约为89MB,gzip文件大约为4.4MB.
但是,还原将无限期挂起,并显示错误消息.我应该如何解决这个问题?
我运行的命令是:
mongorestore --gzip --archive ./my-db.gz --drop -u admin --authenticationDatabase admin --verbose=5
Run Code Online (Sandbox Code Playgroud)
因此响应如下:
2018-01-09T15:47:45.089+0100 standard input is a terminal; reading password from terminal
Enter password:
2018-01-09T15:47:46.508+0100 will listen for SIGTERM, SIGINT, and SIGKILL
2018-01-09T15:47:46.509+0100 checking options
2018-01-09T15:47:46.509+0100 dumping with object check disabled
2018-01-09T15:47:46.527+0100 connected to node type: standalone
2018-01-09T15:47:46.528+0100 standalone server: setting write concern w to 1
2018-01-09T15:47:46.528+0100 using write concern: w='1', j=false, fsync=false, wtimeout=0
Run Code Online (Sandbox Code Playgroud)
在这里,它永远停止.数据库已成功创建,但仍保持0b
大小.
奇怪的是,MongoDB Compass中的数据库概述显示了数据库中具有~28k文档的单个集合,这正是我所期望的,平均大小和其他元数据显然是正确的,但没有任何东西可以读取.
我已从实时集群中导出数据库,并尝试导入到我的本地开发环境,通过Docker运行单个实例.
我应该从哪里出发?
谢谢.
首先,标题会暗示这是这个或这个的重复,但由于几个原因,这些答案对我不起作用,即使我最初的问题是相同的.我会解释原因.
我的问题是:我在我的代码中有几次我想发送标题和正文然后终止处理.与其他问题不同,我不能使用return
或抛出异常(这些显然是为出于不同目的设计的不同函数而不是退出,这不是错误;它只是在某些特定情况下的早期运行时终止).
仍然,我想编写运行这些方法的单元测试,确保设置了适当的头文件(此处找到解决方案),输出主体是正确的($this->expectOutputString()
在测试用例中使用-method 解决),然后继续测试.在这之间,exit
意志会发生.
我已经@runInSeparateProcess
在PHPUnit中尝试了-annotation,我也检查了test_helpers扩展,它有效,但我不想添加另一个扩展(建议测试也将在生产中运行)本机PHP代码打破了一切.必须有一种更简单的方法而不牺牲最佳实践.
有没有人有这个问题的好方法?
我正在构建一个包含多个断开组件的微服务系统,我目前正在尝试了解如何根据提供的protobuf
数据了解对象上的哪些字段应该更新.
流程如下:
protobuf
结构,然后将其发送到负责处理它的微服务.现在,我遇到的问题是,因为protobuf
(理解上)不允许指针,protobuf
对象将包含未提供的所有内容的零值.这意味着,如果客户想要更新他们的电子邮件地址,我不知道他们是否也设置IncludeInMailLists
为false
- 或者是否仅提供(具有零值)并且不应该更改.
问题是:我如何 - 从protobuf对象 - 知道一个值是否被明确地设置为0,或者只是没有提供?
我当前的解决方案几乎有一个特殊的对象UpdateCustomer
,它也有一个数组,Fields
指定微服务应该关注哪些字段,但感觉就像是一个糟糕的解决方案.
有人必须已经更好地解决了这个问题.我该如何实施呢?
我正在尝试使用正则表达式验证查询字符串.请注意,我不是要匹配值,而是验证其语法.我这样做是为了练习正则表达式,所以我很感激帮助而不是"使用这个lib",虽然看看它如何在lib中完成它会对我有所帮助,所以如果你有一个,请告诉我.
所以,这将是先决条件:
我已经相当远了,但是我在正则表达式中匹配时遇到的问题是等号和符号必须按特定顺序排列而不必重复匹配组.这是我到目前为止所得到的:
#^\?([\w\-]+((&|=)([\w\-]+)*)*)?$#
Run Code Online (Sandbox Code Playgroud)
它正确匹配?abc=123&def=345
,但它也错误匹配例如?abc=123=456
.
我可能会过度杀戮并做类似......
/^\?([\w\-]+=?([\w\-]+)?(&[\w\-]+(=?[\w\-]*)?)*)?$/
Run Code Online (Sandbox Code Playgroud)
...但我不想重复相同的匹配组.
我如何告诉正则表达式值之间的分隔符必须在重复匹配组之间迭代,&
还是=
不重复匹配组或灾难性的反向跟踪?
谢谢.
编辑:
我想澄清一点,这不适用于现实世界的实施; 为此,应该使用您的语言中最有可能的内置库.问这个问题是因为我想提高我的正则表达式技能,解析查询字符串似乎是一个有意义的挑战.
我想我会尝试使用 nginx 而不是 Apache 并查看它是如何工作的,并且我已经启动并运行了,但是为了我的生活,我无法弄清楚如何让 PhpStorm 捕获传入的 xdebug 连接。当我运行 Apache 时,它运行良好。
通常,你会在 PhpStorm 中得到一个“传入连接”窗口——这个窗口现在因它的缺失而发光——是的;我已经阅读了 StackOverflow 上的每一个 PhpStorm/Xdebug 问题,但都没有解决我的问题。
配置:操作系统:OSX Mavericks PhpStorm 版本:7.1 Xdebug 版本:2.2.5
请注意,我正在运行 nginx 和 PHP,通过php-fpm
它们按预期工作。我已经指出了与 php-fpm 运行到 PhpStorm 相同的 PHP 文件,它成功地找到了 Xdebug 作为调试器。
由于php-fpm
像 Xdebug 一样运行端口 9000,我已将其更改为 9900 和 9001(两者都尝试过)并确保检查我phpinfo()
的服务器是否已使用它更新了 php.ini 配置,并且我已经检查过我已经更新了 PhpStorm 中的 Xdebug 端口。我还在 PhpStorm 中启用了“开始侦听调试连接”。
来自 php.ini 的 Xdebug 配置:
[xdebug]
zend_extension = /usr/local/Cellar/php55/5.5.14/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.auto_trace=0
xdebug.default_enable=1
xdebug.idekey="PHPSTORM"
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="/tmp"
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_mode=req
xdebug.remote_port=9001
Run Code Online (Sandbox Code Playgroud)
如前所述 - 当我 …
我有点紧张,正在开发一个基金经纪人网站.
作为我们安全策略的一部分,CSP在我们的服务器上实现,但现在,我们正在实施与斯堪的纳维亚银行(BankID)提供的桌面软件的通信.
有了这个,出现了一个问题:要打开BankID桌面软件,应该使用自定义协议单击一个链接,如下所示:
bankid://?orderref=[GUID]&autostarttoken=[GUID]
Run Code Online (Sandbox Code Playgroud)
我确信您理解,我遇到严重问题,允许通过我们的CSP政策进行此链接.我的搜索没有产生任何结果,我的想法已经用完了.
我试图在协议下尝试允许通配符域:
Content-Security-Policy: default-src 'self' bankid://*;
Run Code Online (Sandbox Code Playgroud)
如果我关闭CSP,它的效果非常好,所以这绝对是个问题.
有人对此有经验吗?任何帮助是极大的赞赏.
经过几个小时的搜索,我在Mozilla Wiki上找到了以下内容:
我们需要一种应用程序交付机制,它可以保证应用程序的完整性和真实性,还可以实现定义明确的应用程序和权限范围,从而可以在运行时维护完整性.
并进一步:
特权和认证的应用程序将通过一个独特的方案(app://)访问.域名将对应于应用ID.
我不确定这是否适用,但如果我认为这是正确的,那就意味着Mozilla正在考虑如何解决这个问题.
我正在使用Blackbox保护存储库中的敏感文件,但对于我来说,突然,莫名其妙地,它只是停止了工作。
我正在运行一个GitLab CI部署脚本,blackbox_postdeploy
失败并显示message gpg: [don't know] ctb=00
。
我已经发现ctb=00
通常与损坏的钥匙串有关,但是由于我是在干净的Docker容器上(通过GitLab CI)运行它,所以我不知道如何解决它。
这是GitLab CI脚本的输出:
$ gpg -v --import <(echo "$GPG_PRIVATE_KEY")
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: pub 4096R/ABC1234 2017-04-28 Bot <bot@redacted.com>
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: using PGP trust model
gpg: key ABC1234: public key "Bot <bot@redacted.com>" imported
gpg: Total number …
Run Code Online (Sandbox Code Playgroud) 我使用的是Kubernetes,最近更新了中使用的管理证书kubeconfig
。但是,这样做之后,所有helm
命令都会失败:
Error: Get https://cluster.mysite.com/api/v1/namespaces/kube-system/pods?labelSelector=app%3Dhelm%2Cname%3Dtiller: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)
kubectl
可以正常工作:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-10-1-0-34.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-1-51.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
ip-10-1-10-120.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-10-135.eu-central-1.compute.internal Ready <none> 27d v1.7.10+coreos.0
ip-10-1-11-71.eu-central-1.compute.internal Ready <none> 42d v1.7.10+coreos.0
ip-10-1-12-199.eu-central-1.compute.internal Ready <none> 8d v1.7.10+coreos.0
ip-10-1-2-110.eu-central-1.compute.internal Ready master 42d v1.7.10+coreos.0
Run Code Online (Sandbox Code Playgroud)
就我所能阅读的而言,helm
应该使用与相同的证书kubectl
,这使我对如何kubectl
工作感到好奇,但helm
对吗?
这是一个具有通过头盔图表处理内部发布的生产集群,因此必须解决它。
任何提示将不胜感激。
我有一个在Kubernetes中运行的GitLab安装,突然之间,我的连接dind
已停止工作。此问题开始出现在大约30个项目中,而另一个项目中仍在起作用,并且未进行任何更改。
该版本产生以下错误:
*** WARNING: Service runner-c542f8fe-project-3-concurrent-0-docker-0 probably didn't start properly.
Health check error:
service "runner-c542f8fe-project-3-concurrent-0-docker-0-wait-for-service" timeout
Health check container logs:
Service container logs:
2018-08-13T08:40:53.274661600Z mount: permission denied (are you root?)
2018-08-13T08:40:53.274713900Z Could not mount /sys/kernel/security.
2018-08-13T08:40:53.274730800Z AppArmor detection and --privileged mode might break.
2018-08-13T08:40:53.275949300Z mount: permission denied (are you root?)
*********
Run Code Online (Sandbox Code Playgroud)
我正在特权运行容器,可以在我的容器中看到/etc/gitlab-runner/config.toml
:
metrics_server = ":9252"
concurrent = 10
check_interval = 30
[[runners]]
name = "mothy-jackal-gitlab-runner-bb76cb464-7fq6z"
url = "[redacted]"
token = "[redacted]"
executor = "kubernetes"
[runners.cache]
[runners.kubernetes] …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 VueJS 项目,根据输入生成 SVG 图像。生成它们后,我将数据作为 base64 编码字符串发送到后端 API。
现在,每当我尝试使用 UTF8 字符对字符串进行编码时,都会收到以下错误:
Uncaught DOMException: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
Run Code Online (Sandbox Code Playgroud)
我尝试用 Unicode 代码点替换 HTML 中的所有字符来解决这个问题。但是,每当我尝试获取 DOM 元素时,Unicode 编码的字符都会恢复为纯文本格式。
如何获取 Base64 编码字符串形式的 HTML?
这个问题可以在这里的小提琴中看到。
我尝试过使用XMLSerializer
和运行innerHTML.toString()
:
let svgEl = this.$el.querySelector('.svg-container svg')
if (!svgEl) {
console.log('no poster element')
return
}
// Using XMLSerializer:
console.log(btoa(new XMLSerializer().serializeToString(posterEl))
// Using innerHTML:
console.log(btoa(posterEl.innerHTML.toString()))
Run Code Online (Sandbox Code Playgroud)
上面的两个例子都会产生相同的错误。
谢谢。
php ×2
backup ×1
bankid ×1
base64 ×1
die ×1
exit ×1
expression ×1
gitlab ×1
gnupg ×1
go ×1
javascript ×1
kubernetes ×1
mongodb ×1
mongorestore ×1
nginx ×1
phpunit ×1
protocols ×1
regex ×1
ssl ×1
validation ×1
xdebug ×1