使用云功能将文件从谷歌云存储传输到Windows虚拟机实例



我正在尝试设置一个云函数,该函数将文件从存储桶移动和删除到同一项目中的Windows实例。当然,如果我们从实例本地运行它并使用gsutil,我们可以使它工作。

但是我们如何在本地文件夹的云函数脚本中编码VM路径

我还在虚拟机中共享了本地文件夹。

非常感谢您的投入。

下面是代码,

import logging
from google.cloud import storage
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="serviceaccount.json"
#logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG) 
bucket_name = 'bucket name'
#File_name = 'filename'
# Instance/VM location where the files should be downloaded into (VM NAME)
folder = '//VW123456789/Cloud-Files' 
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)
blobs = bucket.list_blobs() #List all objects that satisfy the filter.
# Download the files inside windows-VM on GCP 
def download_to_local():
logging.info('File download Started...Please wait for the job to complete!')
# Create this folder locally if not exists
if not os.path.exists(folder):
os.makedirs(folder)
# Iterating through for loop one by one using API call
for blob in blobs:
logging.info('Blobs: {}'.format(blob.name))
destination_files = '{}/{}'.format(folder, blob.name) 
blob.download_to_filename(destination_files)
logging.info('Exported {} to {}'.format(blob.name, destination_files))
blob.delete()
if __name__ == '__main__':
download_to_local()

谢谢!

有几种方法可以将文件复制到Windows服务器或从Windows服务器复制文件。这些方法都不是在云函数中简单实现的。

Windows CIFS文件共享

此方法涉及启用Windows共享。AFAIK没有一个简单的SAMBA客户端可以在云功能中实现。

SFTP

此方法需要设置Windows Server SSH服务器和客户端的SSH密钥对(Cloud Function(。有些Python SSH客户端库(paramiko(可能与Cloud Functions配合使用。使用SFTP传输文件很容易通过paramiko实现。

REST API服务器

这种方法需要创建您自己的软件,该软件提供REST API(或类似技术(,云函数可以通过HTTPS调用。您将需要管理授权。实现您自己的API和安全性会带来重大风险。

推荐

云功能是与Windows服务器接口的错误服务。我建议在Windows Server上创建一个HTTP端点,该端点将被调用,而不是Cloud Function。现在,您已经从设计公式中删除了Windows Server授权。您的Python代码可以直接在与云存储接口的Windows上运行。

相关内容

  • 没有找到相关文章