小编Bri*_*ian的帖子

为什么vim搜索比"cat fileName | grep targetText"慢得多?

我有一个名为test.txt的1.4 GB文本文件,我想在文件中搜索一个字符串.

我想知道为什么vim搜索(vim test.txt,然后键入/targetText搜索字符串)执行速度比cat test.txt | grep targetText

在我的机器上,vim搜索大约需要几分钟才能完成搜索,同时cat test.txt | grep targetText需要几秒钟才能完成搜索.

vim search string-matching

2
推荐指数
1
解决办法
112
查看次数

如何限制docker run执行时间?

我想在docker容器中运行命令。如果该命令花费了3秒钟以上的时间,则应删除该容器。

我以为可以通过使用中的--stop-timeoutoption 来实现此目标docker run

但是我的命令似乎出了点问题。

例如,docker run -d --stop-timeout 3 ubuntu:14.04 sleep 100命令创建一个持续3秒以上的Docker容器。第三秒后,容器不会停止或删除。

我是否误解了--stop-timeout

文件说:

--stop-timeout 停止容器的超时时间(以秒为单位)

这是我的Docker版本:

Client:
 Version:       17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:03:51 2017
 OS/Arch:       darwin/amd64

Server:
 Engine:
  Version:      17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:        Wed Dec 27 20:12:29 2017
  OS/Arch:      linux/amd64
  Experimental: true
Run Code Online (Sandbox Code Playgroud)

API版本比1.25更新。

docker

2
推荐指数
4
解决办法
4644
查看次数

从存储桶策略中排除一个 Amazon S3 对象

我想取消images/login_logo.png我的 S3 存储桶内的文件( )的公共访问权限my-test-bucket

目前,该文件的权限设置如下:

在此输入图像描述

正如你在上图中看到的。它不适合所有人公开访问。

但我仍然可以从 s3 链接访问它。

这种现象是我的存储桶策略造成的吗?

{
    "Version": "2012-10-17",
    "Id": "Policy1528702071704",
    "Statement": [
        {
            "Sid": "Stmt1528702067249",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-test-bucket/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

如果是这样,在包含大约 10,000 个文件的大型公共存储桶中取消单个文件的公共访问权限的最佳方法是什么?

由于这个问题,我无法申请make public大桶。

amazon-s3 amazon-web-services

2
推荐指数
1
解决办法
2340
查看次数

在主机中发现 jmeter 非法字符:‘/’;

我正在尝试运行 jmeter 来启动负载测试。

我发现奇怪的一件事是我可以在 macOS 中运行以下 jmeter 命令而没有任何问题。

PROTOCOL=https
DOMAIN=mywebsite.com/API
PORT=443
LOOP=1
THREADS=1

/var/jenkins_home/apache-jmeter-5.1.1/bin/jmeter \
  -Jjmeter.save.saveservice.output_format=xml \
  -Jprotocol=${PROTOCOL} \
  -Jdomain=${DOMAIN} \
  -Jport=${PORT} \
  -Jloop=${LOOP} \
  -Jthreads=${THREADS} \
  -n -t mywebsite.jmx \
  -l jmeter.jtl \
  -j mywebsite.log
Run Code Online (Sandbox Code Playgroud)

但是当我在 linux 机器上运行上述命令时,我收到错误消息。

<httpSample t="0" it="0" lt="0" ct="0" ts="0" s="false" lb="" rc="Non HTTP response code: java.net.MalformedURLException" rm="Non HTTP response message: Illegal character found in host: &apos;/&apos;" tn="Thread Group 1-1" dt="text" by="822" sby="0" ng="1" na="1">
  <null/>
</httpSample>
Run Code Online (Sandbox Code Playgroud)

并且 100% 的 jmeter 请求失败。

jmeter.jtl结果文件中找到此错误消息。 …

java jmeter

2
推荐指数
1
解决办法
2349
查看次数

将变量传递给回调函数

我有一段这样的代码:

var guid = 'unique_guid';
con.query('SELECT guid FROM myDB.myTable WHERE guid = ?', guid, function(err, rows) {
    if(err) throw err;
    if(rows.length == 0) {
        console.log('new guid: ' + guid);
        // do more things which require guid
    } else {
        console.log('old guid: ' + guid);
        // do more things which require guid
    }
}
Run Code Online (Sandbox Code Playgroud)

为了避免回调地狱,我给回调函数一个名称,并将其重构为如下:

var checkExistence = function(err, rows) {
    if(err) throw err;
    if(rows.length == 0) {
        console.log('new guid: ' + guid);       // guid can't be referenced here
        // do …
Run Code Online (Sandbox Code Playgroud)

javascript callback node.js

1
推荐指数
1
解决办法
69
查看次数

mocha 全局 `before` 仅执行 1 次

我使用 mocha 进行 Node.js 功能测试。

我的测试中有几个文件。

如何在所有测试开始之前只运行一段代码一次?

例如,我可能必须在所有测试开始之前设置一个 docker 容器。用摩卡可以做到这一点吗?

before钩子为每个测试文件运行 1 次。这不能满足我的需求。

javascript functional-testing mocha.js node.js

1
推荐指数
1
解决办法
6459
查看次数

检查用户名是否有效的API端点的最佳名称

我将设计一个RESTful API,它使用调用者提供的用户名来检查是否有任何错误(例如重复,无效字符或黑名单中列出的名称......).

API应将检查结果(有效或无效)返回给调用者,以便调用者知道他是否可以使用此用户名.

如何命名API端点?

我最初认为GET /checkUserName/{username}或者GET /isUserNameValid/{username}是我的API的好名字.但我不确定他们是否真的很好.而且我不知道如何方便别人接受我提出的名字.

GET是http方法.username是调用者提供的参数.

我读过以下两篇文章:

更好的休息api的10个最佳实践

RESTful API设计指南 - 最佳实践

但似乎我的API名称不符合上述文章中描述的所有指南.

其中一条指南说

使用名词但没有动词

遵循本指南,GET /checkUserName/{username}是不合适的.因为它包含动词check.

GET /isUserNameValid/{username}也不合适.因为is是一个动词.

那么,如果我必须遵循RESTful设计的指导方针,API的最佳名称是什么?

我想不出一个不包含动词的合适名字.

api rest naming-conventions restful-architecture

1
推荐指数
1
解决办法
1372
查看次数

Binance future API 无效的 API 密钥、IP 或操作权限

我想使用Binance_Futures_python API来获取我的账户余额。

这是我的代码:

import binance_f

fclient = binance_f.RequestClient(api_key='<my_api_key>', secret_key='<my_secret_key>', url='https://fapi.binance.com')
result = fclient.get_balance()
Run Code Online (Sandbox Code Playgroud)

而上面代码的错误信息是

Traceback (most recent call last):
  File "/Users/brian.lee/my_gitlab/binance_api_test/test_error.py", line 4, in <module>
    result = fclient.get_balance()
  File "/usr/local/lib/python3.9/site-packages/binance_futures-1.1.0-py3.9.egg/binance_f/requestclient.py", line 328, in get_balance
  File "/usr/local/lib/python3.9/site-packages/binance_futures-1.1.0-py3.9.egg/binance_f/impl/restapiinvoker.py", line 37, in call_sync
  File "/usr/local/lib/python3.9/site-packages/binance_futures-1.1.0-py3.9.egg/binance_f/impl/restapiinvoker.py", line 21, in check_response
binance_f.exception.binanceapiexception.BinanceApiException: ('ExecuteError', '[Executing] -2015: Invalid API-key, IP, or permissions for action, request ip: 111.93.84.192')
Run Code Online (Sandbox Code Playgroud)

这是我的币安账户的 API 管理页面。

在此输入图像描述

我真的不明白为什么我的代码失败。

我已经为API密钥打开了尽可能多的权限。

我使用非美国版本的币安 ( https://www.binance.com/ )。

我已阅读这篇文章,但该文章中的答案不起作用。

有谁知道错误的原因?

python binance

1
推荐指数
1
解决办法
4152
查看次数

无法使用python请求模块发送`multipart/form-data`请求

我有 Java spring 服务器,它要求Content-Type发送到服务器的请求为multipart/form-data.

我可以使用邮递员正确地向服务器发送请求:

在此处输入图片说明

在此处输入图片说明

但是,The current request is not a multipart request尝试requests在python3中使用模块发送请求时出错。

我的python代码是:

import requests

headers = {
  'Authorization': 'Bearer auth_token'
}

data = {
  'myKey': 'myValue'
}

response = requests.post('http://127.0.0.1:8080/apiUrl', data=data, headers=headers)
print(response.text)
Run Code Online (Sandbox Code Playgroud)

如果我添加'Content-Type': 'multipart/form-data'到请求的标头,则错误消息将变为Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was found.

如何发出与邮递员使用 python 发送的请求相同的请求?

python java spring python-requests

0
推荐指数
1
解决办法
3367
查看次数