djg*_*gcp 1 python google-cloud-storage google-cloud-platform apache-nifi
我正在 NiFi 中从 Kafka 读取数据,并想使用 python 脚本将数据上传到 GCS。到目前为止,我们一直在 NiFi 中使用 PutGCS 对象处理器,但希望避免使用 GCP 控制器服务,因为当 GCP 服务帐户密钥发生更改时,我们必须再次禁用并启用它们(我们已通过 python 实现了自动化)。
所以我们正在考虑使用python脚本来获取NiFi流文件中的数据并将其写入GCS。问题是我们不想将数据写入本地文件然后将其推送到 GCS。有没有办法将Python变量中保存的数据直接写入文件GCS?
我们正在寻找类似于 Node.js 可用的东西,如下所示:
我同意 John Hanley 发表的评论,并且我会使用upload_from_string()方法。请注意,您必须将 NiFi 流文件的内容转换为字符串变量,然后使用该方法以类似的方式将 blob 上传到 Cloud Storage:
from google.cloud import storage
def upload_blob(bucket_name, destination_blob_name, data_from_flowfile_as_string):
"""Uploads a file to the bucket."""
# bucket_name = "your-bucket-name"
# destination_blob_name = "storage-object-name"
storage_client = storage.Client()
bucket = storage_client.bucket(bucket_name)
blob = bucket.blob(destination_blob_name)
blob.upload_from_string(data_from_flowfile_as_string)
Run Code Online (Sandbox Code Playgroud)
我对读取 NiFi 流文件的复杂性没有任何相关知识,或者如果将其内容保存为字符串变量存在任何相关挑战,我相信您可以在社区中找到另一篇文章以及其他Github 代码对于从流文件中获取所需的内容很有用。
在 GCP Cloud Storage 方面,请注意,使用 Cloud Storage 客户端库将要求您为脚本设置所需的身份验证,以便与您的存储桶进行任何交互,如文档相关部分所述,这可以使用服务帐户密钥和GOOGLE_APPLICATION_CREDENTIALS
环境变量。
归档时间: |
|
查看次数: |
2134 次 |
最近记录: |