Python 3:如何保持dropbox.files\u upload()的活动状态。那么要同时下载和上传吗?

Python 3:如何保持dropbox.files\u upload()的活动状态。那么要同时下载和上传吗?,python,dropbox,Python,Dropbox,我想从互联网上下载一个文件,同时上传到dropbox。我下载的文件作为块,并在每一个完整的块后,我希望它上传到dropbox import multiprocessing as m import requests as rr import dropbox url='http://www.onirikal.com/videos/mp4/battle_games.mp4' db=dropbox.Dropbox(Accesstoken) def d(url): r=rr.get(url,str

我想从互联网上下载一个文件,同时上传到dropbox。我下载的文件作为块,并在每一个完整的块后,我希望它上传到dropbox

import multiprocessing as m
import requests as rr
import dropbox
url='http://www.onirikal.com/videos/mp4/battle_games.mp4'
db=dropbox.Dropbox(Accesstoken)
def d(url):
    r=rr.get(url,stream=True)
    with open('file.mp4','wb')as f:
        for a in r.iter_content(chunk_size=1000000):
            if a:
                f.write('')
                f.write(a)

def u():
    try:
        with open('file.mp4','rb')as ff:
            db.files_upload(ff.read(),'/file.mp4')
    except FileNotFoundError:
        pass
if __name__=='__main__':
    p=m.Pool()
    re= p.apply_async(d,[url])
    ree=p.apply_async(u)
    re.get(timeout=10)
    ree.get(timeout=10)
但上载的文件大小为0字节

编辑


我使用
f.write(“”)
来节省服务器上的空间,因为我只有512mb的存储空间

您不应该为此使用多处理。取而代之的是,只需像您已经在做的那样下载块,然后立即调用。您不需要磁盘上的临时文件。

我想您可以这样做

r=rr.get(url,stream=True)
db.files_upload(r.content,'/file.mp4')
直接上传而不制作文件。如果您希望以流或块的形式上载,我认为您需要执行以下操作:

from io import BytesIO
import requests
import dropbox

client = dropbox.client.DropboxClient(access_token)

r = requests.get(url, stream=True)
with BytesIO(r.content) as bytes_stream:
    client.get_chunked_uploader(bytes_stream, len(r.content))
    while uploader.offset < len(r.content):
        try:
            upload = uploader.upload_chunked()
        except dropbox.rest.ErrorResponse, e:
            # perform error handling and retry logic
    uploader.finish('/file.mp4')
从io导入字节io
导入请求
导入dropbox
client=dropbox.client.dropbox客户端(访问令牌)
r=requests.get(url,stream=True)
将字节(r.content)作为字节流:
client.get_chunked_uploader(字节流,len(r.content))
当uploader.offset

我无法验证这两种方法,因为我目前无法安装dropbox模块,因此您可能需要调整一些内容。

有人回复!!![交叉链接供参考:文档有点混乱你能给我一个例子吗谢谢。但是你能看看这个吗