小编omn*_*ain的帖子

使用Java创建符号链接

我在创建Java目录的符号链接时遇到了麻烦.我正在使用Files类中的createSymbolicLink()方法:http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html

绝对路径:

  • 目标: /some/path/target
  • 链接: /some/path/xxx/linkname

我希望,在目录的链接/some/path/xxx/中创建的文件夹/some/path/target,而是从一个链接/some/path/xxx/linkname/some/path/xxx/target被创建.我只是无法弄清楚我做错了什么.

当我从中创建链接/some/path/linkname/some/path/target,一切都按预期工作.

任何帮助是极大的赞赏.

编辑:这是我的代码:

Path records = Paths.get(Properties.getProperty("records.path"));
Path recordsLink = Paths.get(Properties.getProperty("webserver.root") + System.getProperty("file.separator") + records.getFileName());
try {
    Files.createSymbolicLink(recordsLink, records);
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

"records.path"和"webserver.root"都是相对路径.

实际上我刚刚找到了问题的解决方案:如果我这样做,它会起作用:

records = records.toAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

我假设createSymbolicLink()将使用绝对路径来创建链接,这是错误的.

java symlink

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

React、样式组件和 TypeScript:如何将样式组件包装在功能组件中

我正在尝试为我的样式组件创建一个包装器,但我无法正确获取类型。

假设我有一个这样的样式组件:

const Button = styled.button<ButtonProps>`
  background-color: ${(props) => props.color};
`;

Run Code Online (Sandbox Code Playgroud)

现在我想创建一个包含此样式按钮的包装组件,例如。像这样:

const WrappedButton: React.FunctionComponent<ButtonProps> = ({ children, ...rest }) => (
  <div>
    <Button {...rest}>{children}</Button>
  </div>
);

Run Code Online (Sandbox Code Playgroud)

现在这一切都工作正常,但我真正想要的是WrappedButton组件接受该Button组件将接受的所有道具并将它们传递给包装的Button组件

例如,我希望编译它,因为 type 是 HTML 按钮元素的有效属性(因此也是 Button 组件的有效属性,但在包装 Button 组件时不是):

// TypeScript will throw an error because "type" is not a valid prop of WrappedButton. 
const MyComponent = () => <WrappedButton type="submit">Test</WrappedButton>

Run Code Online (Sandbox Code Playgroud)

我知道我可以将“type”作为 WrappedComponent 的 props,但这不是重点,我希望 WrappedComponent接受普通 HTML 按钮会接受的所有 props

编辑:我还需要包装组件上的所有样式组件特定道具,例如as样式组件的道具。这是代码沙箱的更新版本: …

typescript reactjs styled-components

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

PyYAML 错误:“yaml.scanner.ScannerError:此处不允许映射值”

解析 YAML 时出现奇怪的错误:

yaml.scanner.ScannerError: mapping values are not allowed here
Run Code Online (Sandbox Code Playgroud)

根据YAML Lint,我尝试读取的 YAML 文件是有效的

另一个奇怪的事情是它在我的笔记本电脑(Arch Linux)上运行良好,但在服务器(Ubuntu)上运行不正常。尽管两台机器上的 PyYAML 版本是相同的。

我在 stackoverflow 上看到过 其他帖子,其中人们缺少冒号后面的空格,但我没有缺少任何空格。

这是完整的 YAML 文件:

yaml.scanner.ScannerError: mapping values are not allowed here
Run Code Online (Sandbox Code Playgroud)

这是完整的堆栈跟踪:

Traceback (most recent call last):
  File "/usr/local/bin/someproject", line 9, in <module>
    load_entry_point('someproject==0.0.1', 'console_scripts', 'someproject')()
  File "/usr/local/lib/python3.4/dist-packages/someproject-0.0.1-py3.4.egg/someproject/__init__.py", line 19, in main
    pipeline.Pipeline(parser.parse_args().scriptfile).start()
  File "/usr/local/lib/python3.4/dist-packages/someproject-0.0.1-py3.4.egg/someproject/pipeline/pipeline.py", line 20, in __init__
    self._raw_pipeline = self._parse_yaml(yamlscript)
  File "/usr/local/lib/python3.4/dist-packages/someproject-0.0.1-py3.4.egg/someproject/pipeline/pipeline.py", line 55, in _parse_yaml
    data = yaml.load(yamlscript)
  File "/usr/local/lib/python3.4/dist-packages/PyYAML-3.11-py3.4-linux-x86_64.egg/yaml/__init__.py", line 72, in load …
Run Code Online (Sandbox Code Playgroud)

python yaml pyyaml python-3.4

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

Kurento WebRTC连接在大约30%的情况下失败

我花了几天时间寻找连接问题,但没有任何运气。我正在尝试使用Kurento实现一个相对简单的one2one呼叫。

在下面,您会找到Kurento的调试日志,其中说明了可以建立连接和连接失败的情况。

如果您需要更多日志(例如,客户端,信令服务器,tcpdumps或Kurento的跟踪日志),请告诉我,我会提供!

任何帮助或新的投入,我们将不胜感激!

问题描述:

在大约30%的情况下,无法建立WebRTC连接。不幸的是,当可以建立Connection时,我缺乏任何形式,而当不能建立连接时,它似乎是完全随机的。我在同一网络中,使用相同的设备,使用相同的TURN服务器,使用相同的信令协议,但是在30%的情况下无法建立连接。

当我在本地运行应用程序时,它似乎更可靠地工作,几乎可以在100%的时间内建立连接(或者甚至有100%的时间可以建立连接,我已经测试了很多次了,但我都失去了跟踪)。我使用docker在本地设置基础架构,并在单独的网络中运行不同的容器(TURN,Kurento和Signalling)以模仿生产部署。

我们在开发和生产环境中会遇到相同的行为。在我们的开发环境中,我们绝对没有防火墙,因此这似乎不是问题。

我试图找出问题原因的原因:

通常,我一直在比较有效案例和无效案例的日志,但是我没有发现它们之间的任何重大差异都可以指出问题所在。

我已经通过TURN服务器(使用Firefox和force_relay标志)以及通过Kurento直接测试了WebRTC连接,但是在这两种情况下,大约30%的情况下连接均失败。

我尝试过滤不是中继候选者的所有ICE候选者。

我已经嗅探了我们的信令服务器(也控制Kurento)和Kurento之间的流量,以查看所交换的JSON RPS消息是否存在任何差异,但它们看起来基本相同。

我已经使用以下工具测试了我们的STUN和TURN服务器:https : //webrtc.github.io/samples/src/content/peerconnection/trickle-ice/,我同时获得了serverreflexive和中继候选者,它们看起来都是正确的

我已经从成功的连接和不成功的连接中窃听了来自客户端的流量,但是可能会发现很大的不同

我简化了Kurento媒体管道(没有记录,没有集线器),但是行为是相同的

我使用了不同的浏览器(Chrome,Firefox和本机iOS实现),但是行为是相同的

Kurento调试日志,说明可以建立连接的情况:

https://gist.github.com/omnibrain/2bc7ad54f626d278d3c8bac29767ac4c

无法建立连接的情况下的Kurento调试日志:

https://gist.github.com/omnibrain/f7caee04a5c6d77ea22a9ccfa95dd825

webrtc kurento libnice

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