小编dan*_*.ch的帖子

使用Twisted进行带宽限制

我想设置的下载/上传文件速度的限制,发现扭曲提供twisted.protocols.policies.ThrottlingFactory来接手这份工作,但我不能得到它的权利.我设置readLimitwriteLimit,但文件上的最高速度还是下载.我究竟做错了什么?

from twisted.protocols.basic import FileSender
from twisted.protocols.policies import ThrottlingFactory
from twisted.web import server, resource
from twisted.internet import reactor
import os

class DownloadPage(resource.Resource):
    isLeaf = True

    def __init__(self, producer):
        self.producer = producer

    def render(self, request):
        size = os.stat(somefile).st_size
        request.setHeader('Content-Type', 'application/octet-stream')
        request.setHeader('Content-Length', size)
        request.setHeader('Content-Disposition', 'attachment; filename="' + somefile + '"')
        request.setHeader('Accept-Ranges', 'bytes')

        fp = open(somefile, 'rb')
        d = self.producer.beginFileTransfer(fp, request)

        def err(error):
            print "error %s", error

        def cbFinished(ignored):
            fp.close()
            request.finish()
        d.addErrback(err).addCallback(cbFinished)

        return server.NOT_DONE_YET


producer = FileSender() …
Run Code Online (Sandbox Code Playgroud)

python twisted bandwidth-throttling

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

标签 统计

bandwidth-throttling ×1

python ×1

twisted ×1