我试图找出一种从Golang执行脚本(.sh)文件的方法.我找到了几种简单的方法来执行命令(例如os/exec),但我要做的是执行整个sh文件(文件设置变量等).
使用标准的os/exec方法似乎并不简单:尝试输入"./script.sh"并将脚本内容加载到字符串中都不能用作exec函数的参数.
例如,这是一个我想从Go执行的sh文件:
OIFS=$IFS;
IFS=",";
# fill in your details here
dbname=testDB
host=localhost:27017
collection=testCollection
exportTo=../csv/
# get comma separated list of keys. do this by peeking into the first document in the collection and get his set of keys
keys=`mongo "$host/$dbname" --eval "rs.slaveOk();var keys = []; for(var key in db.$collection.find().sort({_id: -1}).limit(1)[0]) { keys.push(key); }; keys;" --quiet`;
# now use mongoexport with the set of keys to export the collection to csv
mongoexport --host $host -d $dbname -c $collection --fields "$keys" …
Run Code Online (Sandbox Code Playgroud) 任何人都可以建议如何MP4
从HLS
流构建文件(与您通常想要的相反)?说我有m3u8 - 是否有一种直接的方式来获得一个MP4
使用FFMPEG
或其他工具?
我正在运行一个处理数千个并发Web套接字连接的Web服务器.为了实现这一点,在Debian linux上(我的基本图像是google/debian:wheezy,在GCE上运行),默认打开文件数设置为1000,我通常只将ulimit设置为所需的数字(64,000) .
这很好,除了当我将我的应用程序停靠并部署它时 - 我发现docker类型忽略了限制定义.我尝试了以下(所有在主机上,而不是在容器本身):
MAX=64000
sudo bash -c "echo \"* soft nofile $MAX\" >> /etc/security/limits.conf"
sudo bash -c "echo \"* hard nofile $MAX\" >> /etc/security/limits.conf"
sudo bash -c "echo \"ulimit -c $MAX\" >> /etc/profile"
ulimit -c $MAX
Run Code Online (Sandbox Code Playgroud)
在做了一些研究后,我发现人们能够通过这样做来解决类似的问题:
sudo bash -c "echo \"limit nofile 262144 262144\" >> /etc/init/docker.conf"
Run Code Online (Sandbox Code Playgroud)
并重新启动/重新启动docker服务.
但是,以上所有都失败了:当我的应用程序在容器内部运行时,我收到"太多打开文件"错误(执行以下操作时,没有docker解决了问题).
我试图ulimit -a
在容器内部运行以获得ulimit设置是否有效的指示,但这样做会引发一个关于ulimit的错误,而不是作为PATH一部分的可执行文件.
任何人遇到这个和/或可以建议让码头工人识别极限的方法?
在go中,是否有可能以某种方式动态转换变量?
例如,如果一个简单的演员是:
var intAge = interfaceAge.(int)
Run Code Online (Sandbox Code Playgroud)
如果我不知道年龄是提前的int怎么办?写一个简单的方法就是
var x = getType()
var someTypeAge = interfaceAge(.x)
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这样的事情?反射包提供了一些在运行时确定或转换类型的方法 - 但我找不到类似上面提到的任何内容(一种适用于所有类型的通用方案).
是否有一个等效于getPublicUrl PHP方法的python ?
$public_url = CloudStorageTools::getPublicUrl("gs://my_bucket/some_file.txt", true);
Run Code Online (Sandbox Code Playgroud)
我正在使用Google Cloud Client Library for Python存储一些文件,我正试图找出一种以编程方式获取我存储的文件的公共URL的方法.
我看到在Android的WebView中支持WebRTC的问题存在一些矛盾的证据,我想知道是否有人可能知道Google未来在WebView中支持WebRTC的计划.
一方面,我读过保罗爱尔兰的帖子,声称WebRTC将在Android WebView上得到支持,我也看到了Chromium SVN也是如此.
然而,WebRTC实际上并没有在WebView上工作,我发现帖子说它最终被遗漏了(没有理由,我只能猜测谷歌急于将基于Chromium的WebView放入KitKat并减少像WebRTC这样的复杂功能和WebGL被遗漏了).
有谁知道Google是否计划为Android WebView添加WebRTC支持,何时?
我正在尝试运行一个容器,它将从我在私有GitHub存储库上的包中公开golang服务.
由于我正在与GCE合作,我的初学者形象是google/debian:wheezy.
安装所有必需的依赖项和工具后,我正在运行
RUN go get github.com/<my_org>/<my_package>
Run Code Online (Sandbox Code Playgroud)
包裹是私人回购的地方.
我添加了我的GitHub SSH密钥以允许从私有仓库克隆到docker文件:
ADD priv/id_rsa /root/.ssh/id_rsa
ADD priv/id_rsa.pub /root/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
在尝试克隆回购时,我在go get过程中遇到错误:
# cd .; git clone https://github.com/<my_org>/<my_package> /gopath/src/github.com/<my_org>/<my_package>
Cloning into '/gopath/src/github.com/<my_org>/<my_package>'...
fatal: could not read Username for 'https://github.com': No such device or address
package github.com/<my_org>/<my_package>: exit status 128
Run Code Online (Sandbox Code Playgroud)
要调试问题,从Dockerfile,我正在运行:
RUN ssh-keyscan -t rsa github.com 2>&1 >> /root/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)
这告诉我有一些问题.看起来验证私钥是否正常,但公钥上有些奇怪.这是完整的ssh-keyscan结果:
OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
Pseudo-terminal will not be allocated because stdin is not a terminal.
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config …
Run Code Online (Sandbox Code Playgroud) 我有这个文件(一大堆几个JS文件),它们曾经与browserify(5.10.0)一起使用,直到几天前,现在却没有.
这就是我正在运行的:
$ browserify index.js -o dist/out.bundle.js
Run Code Online (Sandbox Code Playgroud)
输出是:
Error: path must be a string
at /usr/local/lib/node_modules/browserify/node_modules/resolve/lib/async.js:15:16
at process._tickCallback (node.js:419:13)
Run Code Online (Sandbox Code Playgroud)
有谁知道这会导致什么?有没有办法我可以调试这个来试图弄清楚浏览器化了什么?
干杯
我有一个要旋转的元素(视频),然后使用100%的宽度和高度。在应用旋转之前,视频占用100%的宽度和高度。旋转后,尺寸似乎保持与旋转前相同。我想重新应用宽度和高度100%,以使视频适应新的状态。
目标是即使div(或电话)处于纵向模式,也尝试以横向显示视频。
这是我正在尝试做的JSFiddle:http : //jsfiddle.net/a1sLp5gn/2/
在小提琴中,单击按钮以查看所需状态的视频。
该视频包含在一个容器div中,该容器演示了如何通过电话屏幕(红色边框,我想用该视频填充该div)框住该视频。
使用单击按钮后运行的JS,我可以实现我的目标,但是我以一种难看的丑陋方式进行操作-我想知道什么是实现我正在做的事情的最佳/最佳方法。
这是CSS(最好检查一下我提供的小提琴链接,我只把它放在这里,因为有小提琴链接时stackoverflow需要一些代码):
video {
transform:rotate(90deg);
height:100%;
width:100%;
}
.container {
border-style:solid;
border-width:1px;
border-color: red;
height:640px;
width:360px;
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,每秒大约400次读取和每秒100次写入redis(托管在redislabs上).该应用程序使用github.com/garyburd/redigo
包作为redis代理.
我有两个函数,它们是唯一用于读写的函数:
func getCachedVPAIDConfig(key string) chan *cachedVPAIDConfig {
c := make(chan *cachedVPAIDConfig)
go func() {
p := pool.Get()
defer p.Close()
switch p.Err() {
case nil:
item, err := redis.Bytes(p.Do("GET", key))
if err != nil {
c <- &cachedVPAIDConfig{nil, err}
return
}
c <- &cachedVPAIDConfig{item, nil}
default:
c <- &cachedVPAIDConfig{nil, p.Err()}
return
}
}()
return c
}
func setCachedVPAIDConfig(key string, j []byte) chan error {
c := make(chan error)
go func() {
p := pool.Get()
defer p.Close()
switch p.Err() …
Run Code Online (Sandbox Code Playgroud) go ×4
docker ×2
javascript ×2
android ×1
bash ×1
boot2docker ×1
browserify ×1
casting ×1
cloud ×1
css ×1
css3 ×1
debian ×1
ffmpeg ×1
generics ×1
github ×1
html ×1
jquery ×1
linux ×1
mp4 ×1
node.js ×1
python ×1
redis ×1
redislabs ×1
reflection ×1
transcoding ×1
ulimit ×1
video ×1
webrtc ×1
webview ×1