将 .txt 文件上传到 Dropbox 而无需先在本地保存

Upload .txt file to Dropbox without saving locally first

我有一个 .txt 文件需要上传到 Dropbox 文件夹中。在我的 PC 上它工作得很好,但是我需要将代码放入 Google Cloud Function 并且因为 GCP 文件系统是只读的 - 如果失败则使用此方法。

任何人都可以推荐一种不需要我在将数据推送到 Dropbox 之前将数据保存在本地的替代方法吗?

这是我当前本地版本的工作代码:

import pathlib
import dropbox

api_key = 'XXXXXXXXXX'

# Build String And Save Locally To File
string = ["Item_A","Item_B","Item_C","Item_D"]
string = str(string)
with open('Item_List.txt', 'w') as f:
    f.write(string)

# Define Local File Path
localfolder = pathlib.Path(".")
localpath = localfolder / 'Item_List.txt'

# Define Dropbox Target Location
targetfile = '/Data/' + 'Item_List.txt'

# Initilize Dropbox
d = dropbox.Dropbox(api_key)

# Upload File To Dropbox
with localpath.open("rb") as f:
    d.files_upload(f.read(), targetfile, mode=dropbox.files.WriteMode("overwrite"))

如果你需要简单的使用字节数据,可以使用built-in bytes function将字符串转换为字节数据(你还需要指定编码):

data = ["Item_A", "Item_B", "Item_C", "Item_D"]
string_data = str(data)
byte_data = bytes(string_data, encoding='utf-8')

然后稍后只需使用字节数据作为参数:

d.files_upload(byte_data, targetfile, mode=dropbox.files.WriteMode("overwrite"))