- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个非常简单的 Python 脚本——flickr.py——它可以将文件上传到 Flickr。它看起来像这样:
#!/usr/bin/python
import sys
import os.path
import flickr_api
KEY = '<key>'
SECRET = '<secret>'
filename = sys.argv[1]
basename = os.path.basename(filename)
flickr_api.set_keys(api_key=KEY, api_secret=SECRET)
flickr_api.set_auth_handler('/home/pi/.flickr/token')
flickr_api.upload(photo_file=filename, title=basename)
flickr photo.jpg
,它就在我的 Flickr 页面上。
trickle -s -u 10 flickr photo.jpg
trickle
的情况下运行它一样。
trickle -s -u 10 /usr/bin/python flickr photo.jpg
) 的完整路径。似乎没有任何效果。
trickle
——
wget
、
scp
—— 它完全按预期工作。我错过了什么?
最佳答案
TL; 博士
OP 问题无法在相同的硬件上重现,因此我认为这是对单位( 10 KB/s == 80 kbps
)的误读。一个类似但不完全相同的问题引发了对该问题的赏金,因此我为此提供了一些诊断技术。我已将回复分成几部分:
awscli
sudo
完成以提高速度......)
sudo pip install flickr_api
sudo apt-get install nethogs
sudo apt-get trickle
然后,您必须注册一个 Flickr 帐户,创建一个(非商业)应用程序并设置 API key 等 -
app creation here 和 api key 获取
here 的说明,或者通过 Python 包装器
here 。
test.jpg
并尝试了以下操作:
/usr/bin/python flickr.py test.jpg
trickle -s -u 10 /usr/bin/python flickr.py photo.jpg
3
secs 的图片,其中 nethogs
显示了峰值上传速度 ~ 400KB/s
nethogs
显示上传速率在 13 KB/s
处达到峰值(简要),然后稳定在 10.081
处。 trickle
中的上传限制设置为每秒 千字节 (
kB/s
),我认为 OP 可能正在读取每秒千
位 的速度(
kbps
)。因此系数为 8。
aws-cli
上传到 Amazon Web 服务时观察到没有限制
trickle
works is here and 描述了一些
trickle
不起作用的场景:
strace
进行诊断。此站点上还有另一个问题,涉及
strace
usage in general 和查找使用中的共享库的特定用法
here 。
aws-cli
的可重现示例,我将展示我在
flickr_api
案例中验证操作时所做的工作。
strace
intercepts and records the system calls which are called by a process and the signals which are received by a process. As we are investigating which system libraries are in use, we are interested in the
open
messages, so I used the following, in effect "wrapping" the commands from above withstrace
and then grepping the output foropen
:
strace /usr/bin/python flickr.py test.jpg 2>&1 | grep open > strace.out
strace trickle -s -u 10 /usr/bin/python flickr.py test.jpg | grep open > strace_with_trickle.out
diff strace_with_trickle.out strace.out
不出所料,带有
trickle
的版本输出了更多行——特别是这些:
< open("/lib/arm-linux-gnueabihf/libbsd.so.0", O_RDONLY) = 3
< open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY) = 3
< open("/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY) = 3
< open("/usr/lib/trickle/trickle-overload.so", O_RDONLY) = 3
< open("/etc/ld.so.preload", O_RDONLY) = 3
< open("/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so", O_RDONLY) = 3
< open("/etc/ld.so.cache", O_RDONLY) = 3
这些是在进程运行时覆盖
trickle-overload.so
插入的行。特别是,我们可以观察到标准套接字库正在使用中并在此处动态加载 - 即
libc.so.6
和
libbsd.so.0
,这让我们相信
trickle
应该可以工作。
diff
输出应该会让你走得更远。
awscli
假设
awscli
可能会在上传过程中产生新进程。如果是这种情况,我认为带有
trickle
选项的
-s
不会限制这些子进程。您可以在守护程序模式下使用它 - 这可能会更好 - 您可以通过键入
man trickled
来查看如何执行此操作
trickled -u 10
然后“订阅”它的进程,例如
trickle /usr/bin/python flickr.py test.jpg
警告 我没有可重现的
awscli
问题的测试用例,所以这是推测。
关于python - Trickle 无法调整我的 Python 脚本的上传带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22851332/
我正在研究 JavaScript 中的自定义事件。 根据 MDN,使用 CustomEvent 构造函数,有一个选项可以使事件“冒泡”(默认为 false): https://developer.mo
我有一个非常简单的 Python 脚本——flickr.py——它可以将文件上传到 Flickr。它看起来像这样: #!/usr/bin/python import sys import os.pat
我正在尝试在 android 上移植 Trickle ( https://github.com/mariusaeriksen/trickle)。 到目前为止,我发现我需要使用 NDK 独立工具链交叉编
我有一个 golang 程序,可以通过 https 将大量数据上传到 OpenStack 对象存储。它依赖于 golang 标准库 "net/http" 来完成这项工作。我想使用 trickle限制数
我有三个 Raspberry Pi 2 Model B,每个都被硬编码到 IP 地址,例如 192.168.50.x/24,每个都按顺序运行 avahi-daemon提供 mDNS 并且在使用 .lo
我有以下内容: 主应用程序- 程序集 1(包含 UserContolA)- 程序集 2(包含 UserControlB)- 等 虽然不是每个程序集都会被加载,所以 如果我尝试将资源分配给它找不到的控件
我是一名优秀的程序员,十分优秀!