【问题标题】:Is there a way to create a Python script on Google Cloud Function that Downloads a file from a Bucket to your local computer?有没有办法在 Google Cloud Function 上创建 Python 脚本,将文件从存储桶下载到本地计算机?
【发布时间】:2020-05-16 23:24:47
【问题描述】:

目前,我知道有两种方法可以将文件从存储桶下载到您的计算机 1) 手动进入bucket并点击下载 2) 使用 gsutil

有没有办法在 Google Cloud Functions 的程序中执行此操作?您不能在 Python 脚本中执行 gsutil。我也试过这个:

with open("C:\", "wb") as file_obj:
    blob.download_to_file(file_obj)  

但我相信这会在 Google Cloud 上查找目录。请帮忙!

【问题讨论】:

    标签: python google-cloud-storage


    【解决方案1】:

    您使用的代码用于从本地机器下载文件,这在this document 中有所介绍,但是,正如您提到的,这将在执行云功能的机器中查找本地文件。

    我建议您创建一个 cron 以通过 gsutil 将文件下载到本地实例,通过 Cloud Function 执行此操作是不可能的。

    希望你觉得这很有用。

    【讨论】:

    • 谢谢。您知道这是否可以通过 Firebase 实现?
    • 不,由于同样的原因,您将无法通过 Firebase 执行此操作。最好使用 gsutil 将文件复制到本地实例。
    • 谢谢。我目前计划的解决方法是创建一个直接进入云存储桶的下载链接。将链接粘贴到网站中。
    【解决方案2】:

    你不能直接实现你想要的。 Cloud Function 必须能够访问您的本地计算机以复制其上的文件。

    将文件发送到计算机的常用方法是使用 FTP 协议。因此,在您的计算机上安装 FTP 服务器并设置读取存储桶的功能,然后将文件发送到您的 FTP 服务器(您必须获取公共 IP,确保为此配置了防火墙规则/路由器, ...)。这不是最简单的方法。

    带有rsync 命令的gsutil 可以完美运行。如果您想在 Windows 上执行计划任务,请使用计划任务。

    【讨论】:

      猜你喜欢
      • 2020-05-05
      • 1970-01-01
      • 2019-10-29
      • 2021-10-28
      • 2022-08-08
      • 2019-07-03
      • 1970-01-01
      • 2018-07-03
      • 2018-10-18
      相关资源
      最近更新 更多