我想编写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)
答案 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)
注意:这是一个文件的代码,如果您需要传输多个文件,则需要为每个文件调用它。