【发布时间】:2018-10-08 19:44:14
【问题描述】:
我编写了 Python 代码来将文件从本地目录上传到 Azure 存储资源管理器中的 blob 容器,现在我正在尝试自动执行此操作(即,如果目录中有文件,它们会自动上传)。 有什么办法可以做到这一点吗?
import os
from azure.storage.blob import BlockBlobService
from azure.storage.blob import ContentSettings
accountName = "accountName"
ContainerSAS = "SAS_Key"
containerName = "containerName"
# Create reference to container using account name and SAS key
try:
sas_service = BlockBlobService(account_name=accountName,
sas_token=ContainerSAS)
except Exception as e:
print("Error during SAS service creation. Details: {0}".format(e))
print("Created SAS service with account {0}".format(accountName))
# Upload files to container from path
# directory_path = "< path to your directory >"
directory_path = "F:/dat_files_test"
for filename in os.listdir(directory_path):
print(filename)
blobName = filename
localFile = directory_path + "/" + filename
try:
sas_service.create_blob_from_path(
containerName,
blobName,
localFile,
content_settings=ContentSettings(content_type='DPS/dat')
)
except Exception as e:
print("Error during blob uploading. Details: {0}".format(e))
print("All files uploaded")
【问题讨论】:
-
您需要在本地计算机上始终运行并监听文件的东西。您对这些文件所做的是实现细节。换句话说,这不是云计算或 Azure 的问题
-
@cricket_007 谢谢.. 你知道有什么这样的软件会不断检查文件吗?或者关于如何在 python 上实现这样的程序的任何建议?
-
当您说本地文件时,您的意思是您的文件位于 VM(OnPrem/Cloud)或 FTP 或 ???
-
@Thomas 不,它们在本地目录中,就像在我的 C 驱动器中的文件夹中一样。我需要程序在我启动计算机时自动运行。
-
我猜你可以找到一些像这样的观察者文件服务:stackoverflow.com/questions/182197/…???
标签: python azure azure-storage azure-blob-storage azure-webjobs