有没有办法使用 Google Cloud 客户端库将文件从 FTP 上传到 GCS?

问题描述

我是 GCP 及其客户端库的新手。我无法使用 C++ 谷歌云客户端库将文件从 FTP 服务器上传到谷歌云存储桶。当我尝试将文件“storage_object_file_transfer_samples.cc”(在 google-cloud-cpp 中提供,该文件链接here )作为可执行文件运行时,它抛出了一个错误错误是“引发标准异常:无法打开上传文件源”。 GCP 是否支持连接外部 FTP 服务器?如果支持连接,我们如何使用C++客户端库将文件从FTP服务器上传到GCS?

解决方法

GCP 是否支持连接外部 FTP 服务器?

这在文档中有解释,Client::UploadFile 仅支持常规文件系统文件:

UploadFile()

将文件上传到对象。

注意:仅支持常规文件。如果您需要上传 读取设备、命名管道、FIFO 或其他类型文件的结果 不是常规文件的系统对象,则 WriteObject() 是 可能是更好的选择。

所以没有 FTP。

使用 libcurl 等第三方库从 FTP 下载,使用 client.WriteObject() 将其流式传输到 GCP。