小编Bor*_*jaX的帖子

当POST从http重定向到https时,Curl会丢失正文

我正在尝试使用curl 7.23.1将一些数据发送到我的服务器(运行nginx服务器).当nginx使用http://它查询时,它会重定向到https://它是否可以(如果它有密钥和所有mambo-jumbo)

看起来curl正在做点什么......很奇怪.出于兼容性原因,我的脚本(运行的东西curl)正在向其发送请求http://,但是当它遇到https://可用的服务器(因此被重定向)时,POST请求中的主体就会消失.

我正在尝试使用--data-urlencode name @ filename选项上传一堆文本.基本上,我运行一个脚本,将其输出转储到文件中/tmp/checkin/cmd_result,我想将其作为请求的"data"属性上传:

curl --max-time 30 --silent --location-trusted \
     --insecure --write-out "%{http_code}" --request POST \
     --data-urlencode "data@/tmp/checkin/cmd_result" \
     "http:/myserver/command_reply?command_id=524729ce93bc63292c1c9831" \
     --trace-ascii /tmp/command_response_trace.log \
     --output /tmp/checkin/cmd_res_resp --connect-timeout 10
Run Code Online (Sandbox Code Playgroud)

但重定向似乎剥夺了身体.如果我直接发送数据https://,一切都像魅力一样.添加-L(--location)或--location-trustedcurl指令似乎无法解决问题.

有人经历过同样的问题吗?任何帮助将深表感谢.

PS:

这是跟踪curl输出(我已经清理了一下):

=> Send header, 300 bytes (0x12c)
0000: POST /command_reply?&command_id=52
0040: 4729ce93bc63292c1c9831 HTTP/1.1
0061: User-Agent: curl/7.23.1 …
Run Code Online (Sandbox Code Playgroud)

post redirect curl

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

Kubernetespodoperator如何使用cmd或cmd和参数来运行多个命令

我正在使用 GCP Composer 运行算法,在流结束时我想运行一个任务,该任务将执行多项操作,将文件和文件夹从卷复制和删除到存储桶我正在尝试执行这些复制和删除通过 a 进行操作kubernetespodoperator。我很难找到使用“cmds”运行多个命令的正确方法,我也尝试使用“cmds”和“arguments”。这是我KubernetesPodOperator尝试过的命令和参数组合:

post_algo_run = kubernetes_pod_operator.KubernetesPodOperator(
    task_id="multi-coher-post-operations",
    name="multi-coher-post-operations",
    namespace="default",
    image="google/cloud-sdk:alpine",
    
    ### doesn't work ###
    cmds=["gsutil", "cp", "/data/splitter-output\*.csv",  "gs://my_bucket/data" , "&" , "gsutil", "rm", "-r", "/input"], 
    #Error:
        #[2022-01-27 09:31:38,407] {pod_manager.py:197} INFO - CommandException: Destination URL must name a directory, bucket, or bucket
        #[2022-01-27 09:31:38,408] {pod_manager.py:197} INFO - subdirectory for the multiple source form of the cp command.
    ####################

    ### doesn't work ###
    # cmds=["gsutil", "cp", "/data/splitter-output\*.csv",  "gs://my_bucket/data ;","gsutil", "rm", "-r", "/input"],
        # [2022-01-27 09:34:06,865] …
Run Code Online (Sandbox Code Playgroud)

python kubernetes airflow google-cloud-composer

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

将RTSP流转发到远程套接字(RTSP代理?)

我对这个问题的普遍性表示歉意。我尝试了很多事情,但似乎没有任何效果。我有服务器吗?(简称为Server A)位于局域网中,该局域网中还有一个IP网络摄像头。这摄像头的地址不断提供RTSP饲料...让我们说...... rtsp://192.168.1.50:554/cam.sdp。摄像机无法访问外部环境(它必须位于LAN中,因此只能访问服务器A,而不能访问服务器B),但是服务器A可以。可悲的是,服务器A没有公共IP,因此我无法从世界任何地方访问服务器A。服务器A可以根据需要退出,但没人可以进入服务器A...(这是被宠坏的小子...小时候有太多玩具)

Now, there's another server (server B, to be original) in the aforementioned outside world which is a regular web server with its public IP and all. That server allows people to reach into it (not spoiled, very nice... sets the table, does the dishes... that kind of stuff). Both Server A and Server B are my computers and are …

python webcam proxy webserver

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

Django 管理页面:通过多个模型选择而不是原始文本自定义 ID 的字典 (JSONField)

我有一个模型,其中一个字段是postgres.fields.JSONField

将要存储在那里的 Json 是引用数据库中其他项目(可能的关系/属性)的 ID 变量字典。

请允许我更具体:

基本上,我正在尝试创建一个折扣系统,其中某些折扣适用于某些产品。JSON 字段包含了解哪些产品可以获得折扣的约束。

例如:

  • 如果我想对属于“饮料”类别的所有产品应用 50% 的折扣,并且“饮料”类别5在数据库中具有 id ,则折扣记录将如下所示:

    discount_type='percent'
    discount='0.5'
    filter_by={
        'category': [5]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果我想$ 20 off适用于所有产品的“饮料”类别由制造,比方说,可口可乐,该filter_by词典将如下所示:

    discount_type='fixed amount'
    discount='20'
    filter_by={
        'category': [5],
        'manufacturer': [2]   # Assuming coca-cola is the Manufacturer 
                              # with id==2 in the 'Manufacturers'
                              # table of the database (NOTE: this is 
                              # needed since CocaCola manufactures
                              # products besides "Beverages")
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 如果我想对特定产品(比方说产品id3)应用 25% 的折扣,字典将如下所示:

    discount_type='percent' …
    Run Code Online (Sandbox Code Playgroud)

python django customization django-admin django-jsonfield

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

使用产生两列的子查询删除(在 Postgresql 中)

我必须删除一些与使用子查询计算的两列相匹配的记录。

我可以用这个查询正确地看到它们:

select * from user_assignments as ua, 
    (
        select user_assignments.user_id as uid, 
               job_selection as jid 
        from user_assignments
            join job_selections on job_id = jobs.id
            join data on job_selections.data_id = data.id
            where data.my_column IS NULL
    ) as sq
    where sq.uid = ua.user_id AND ua.job_selection_id = sq.jid;
Run Code Online (Sandbox Code Playgroud)

这有效,我看到了要删除的 7 个作业。

然而,删除并不像通过 DELETE 更改 SELECT 那样容易...

如果我做:

delete from user_assignments as ua, 
    (
        ...
    ) as sq
    where sq.uid = ua.user_id AND sq.jid = ua.job_selection_id;
Run Code Online (Sandbox Code Playgroud)

我得到:

ERROR:  syntax error at or near "," …
Run Code Online (Sandbox Code Playgroud)

sql postgresql subquery sql-delete

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

什么是PyCurl的默认超时

好吧,我认为问题的标题是非常自我解释的,所以你可能不需要继续阅读,但在这里:

我已经和PyCurl合作了一段时间,而且我总是使用它来设置我的超时

curlConnector = pycurl.Curl()
curlConnector.setopt(pycurl.CONNECTTIMEOUT, 30)
Run Code Online (Sandbox Code Playgroud)

但我已经开始想知道这是默认超时,或者如何找到它,到目前为止我还没有看到任何令人满意的答案.如果我不手动指定它,默认超时是什么?什么来自插座?(以防它是相关的,我在Ubuntu 12.04和python2.7上工作)

python timeout default pycurl

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

将视频展开(扩展)到特定的持续时间

不要VLCFFmpeg的(或AVconv)有任何功能的视频持续时间强制在一定秒数?

假设我有一个... 5分钟.mp4视频(没有音频).有没有办法让上述任何工具"扩展"视频到更长的时间?该视频来自Power Point幻灯片,但它太短(运行得太快,不能这么说).这个想法是自动插入帧,使其达到指定的持续时间.它看起来像是非常可行的东西(呃...对于像我一样的视频编码/转码的新手):一个5分钟的视频,30fps意味着我有9000帧...为了让它长10倍,得到第一个"真实"框架,复制十次,然后获得第二个"真实"框架,复制十次......依此类推.

我正在使用Ubuntu 12.04,但如果需要,我可以安装/编译任何所需的软件.到目前为止,我有VLC,AVConv和FFmpeg的(FFmpeg的在特定的文件夹,所以不会有冲突AVConv)

先感谢您.

video ubuntu ffmpeg vlc transcoding

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

如何检查字典中的键是否以另一字典中的键开头?

这是我正在尝试做的事情的简化场景。我有两本词典:

dictA = {"apple": 1, "orange": 2, "chocolate": 3, "mango": 4}
dictB = {"man": "abc", "or": "asdf", "app": "fasdfkl"}
Run Code Online (Sandbox Code Playgroud)

如何打印(三个键+值的实际顺序无关紧要):

I can find...
orange2
mango4
apple1

I cannot find...
chocolate3
Run Code Online (Sandbox Code Playgroud)

我试图做这样的事情,但在第二部分卡住了。

print "I can find ..."
for itemA in dictA:
    for itemB in dictB:
        if itemA.startswith(itemB):
            print itemA + str(dictA[itemA])
Run Code Online (Sandbox Code Playgroud)

它会打印

I can find ...
orange2
mango4
apple1
Run Code Online (Sandbox Code Playgroud)

python dictionary key startswith

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

CSS样式继承/重载

我有一个网页,在某一点上,显示一个导航栏,它只不过是一个元素的列表(ul).大多数的风格规则说一个元素是常见的.应该更改的唯一部分是要显示的图像,可以从列表的每个li元素的id标记中猜出.

所以这就是问题:

是否有CSS的方式来定义一个类似"基地"的风格为所有的一个元素,然后根据ID集合的形象呢?也许不是(CSS控件继承 - 继承其他控件样式),但我想确定.

我试过了:

#nav li a {
    /*This would be the 'base' For all the "a"s inside a 
      list inside an element with id=nav (nav -> navigation)*/
 background-color: transparent;
 background-repeat: no-repeat;
 background-position: 0 -58px;
 border-left: thin #444444 solid;
}


#nav li#settings a {
 background: url(../images/nav_settings.png);
}

#nav li#media a {
 background: url(../images/nav_media.png);
}

#nav li#user a {
 background: url(../images/nav_admin.png);
}
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用......"基础"风格被覆盖......

先感谢您!

css inheritance stylesheet

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

Python的好奇心:[]> lambda n:n

我的一个同事正在使用内置的max函数(在Python 2.7上),他发现了一个奇怪的行为.

错误地,他没有使用关键字参数(如key=lambda n: n)来预先对作为参数传递的列表进行排序,而是:

 >>> max([1,2,3,3], lambda n : n)
[1, 2, 3, 3]
Run Code Online (Sandbox Code Playgroud)

他正在做的文档解释如下:

如果提供了两个或多个位置参数,则返回最大的位置参数.,所以现在我很好奇为什么会这样:

>>> (lambda n:n) < []
True
>>> def hello():
...     pass
... 
>>> hello < []
True
>>> len(hello)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'function' has no len()
Run Code Online (Sandbox Code Playgroud)

我知道这不是什么大不了的事,但是如果任何stackoverflowers可以解释这些比较是如何在内部进行的(或者指向我可以找到该信息的方向),我会很感激.:-)

先感谢您!

python lambda list comparison-operators

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