使用python将文件从Dropbox复制到AWS S3

时间:2017-10-10 22:46:44

标签: python-3.x amazon-s3 dropbox-api

我想编写python代码将文件从Dropbox文件夹复制到S3存储桶。

这是我到目前为止编写的代码。我可以在Dropbox文件夹中列出文件。但我无法将其复制到S3,因为我只是获取了Dropbox文件名。

这是代码......

import dropbox
import time
import os
import sys
import json
import boto3

dbx = dropbox.Dropbox("accessToken")

def list_folder(dbx):
    rv = []

    for entry in dbx.files_list_folder('').entries:
         rv.append(entry.name)
    return rv

def Drop2S3(DropFiles):

    for f in DropFiles:
        data = open(f, 'rb')

    s3.Bucket('s3bucket').put_object(Key=f, Body=data)


DropFiles = list_folder(dbx)

client = boto3.client('s3')

s3 = boto3.resource('s3')

Drop2S3(DropFiles)

1 个答案:

答案 0 :(得分:0)

如Greg所说,您将需要使用files_download函数:

import dropbox
import boto3
import io

s3 = boto3.client('s3', region_name='YOUR_REGION')
dbx = dropbox.Dropbox(TOKEN)

meta, res = dbx.files_download(DBX_PATH)  # gets your file from dropbox
s3.upload_fileobj(io.BytesIO(res.content), "BUCKET_NAME", 'S3_PATH_OR_FILENAME)

注意:这是一个文件的代码,如果您需要传输多个文件,则需要为每个文件调用它。