【问题标题】:Need help moving specific PDF files in Google Cloud Storage to an SFTP, based on values located in BigQuery需要帮助根据 BigQuery 中的值将 Google Cloud Storage 中的特定 PDF 文件移动到 SFTP
【发布时间】:2021-12-28 13:42:25
【问题描述】:

我有一个用例,我需要将存储在 Google Cloud Storage Bucket 中的 PDF 文件复制到我设置的 SFTP。存储桶中的特定文件名和位置将位于 Google BigQuery 视图中。

我的经验有限,我一直在尝试使用我熟悉的工具来解决这个问题,但一直在苦苦挣扎。这些我觉得很舒服的工具是:

  • BigQuery
  • 微软流
  • SFTP
  • 在 VirtualMachine 上使用 CMD 提示和 .bat 文件的 WinSCP

我们将不胜感激,特别是如果使用上面列出的工具。

【问题讨论】:

  • WinSCP 可以访问 GC 存储桶(通过 S3)和 SFTP。所以你可以用它从GC桶下载到本地机器,然后上传到SFTP。
  • Pentium10 的答案很棒!

标签: google-bigquery google-cloud-storage sftp power-automate winscp


【解决方案1】:

您可以通过Cloud Workflows 实现此目的,

基本上你需要创建一个工作流

  • 运行 BigQuery 选择语句(例如 here
  • 遍历条目
  • 启动发出相关命令的 Cloud Build 作业
    • 从 GCS 下载文件(类似于 workflow
    • 从 Secret Manager 获取 SFTP 凭据(类似于 this
    • 向 SFTP 命令发出上传文件

所有这些的一个很好的来源是我的两篇文章中的一部分,你可以找到链接。如果您需要帮助,请私下联系我。

【讨论】:

    【解决方案2】:

    看来您需要执行以下步骤:

    1. 通过读取 bigquery 表/视图来收集文件名和路径
    2. 对于每个文件,然后从 GCS 下载并上传到 FTP 服务器

    创建脚本应该非常简单,并且可能是编写健壮且可测试的程序的绝佳选择。

    您可以为此使用 Python(也可以使用 Java、Go、Bash...),因为您可以通过 API 轻松地与 Google BigQuery 和 Cloud Storage 进行交互。

    然后根据您选择的语言进行 FTP 上传。

    参考资料:

    1. 从大查询中读取数据:https://cloud.google.com/bigquery/docs/bigquery-storage-python-pandas
    2. 从 GCS 下载数据:https://cloud.google.com/storage/docs/reference/libraries#client-libraries-install-python

    【讨论】:

      猜你喜欢
      • 2018-06-20
      • 2014-09-18
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 2013-04-16
      • 2017-11-13
      • 2017-03-10
      • 2019-03-24
      相关资源
      最近更新 更多