我已经使用面向Python和Go的文档编写了一些脚本,该脚本可以上传/下载文件等,现在我正在考虑在计算机和Azure存储帐户之间管理文件。
我现在正在考虑创建/使用类似于“ git status”的东西,您可以使用它来查看本地git存储库和远程git存储库之间的差异。我最初的想法是使用某种队列系统,但是我似乎找不到使用Azure Storage SDK为文件执行此操作的文档。
任何帮助将不胜感激!
答案 0 :(得分:1)
有几种方法可以检查您当前正在寻找的内容,一个简单的python脚本可以为您提供此功能,我刚刚编写并测试了一种方法,用于比较Azure File Share与服务器上的本地文件夹中存在的文件和文件夹,然后打印尚未在Azure文件共享中显示的内容:
import os
import azure.storage.common
from azure.storage.common import CloudStorageAccount
from azure.storage.file import FileService
file_service = FileService(account_name='storage_acct_name', account_key='keyhere')
local_files = os.listdir(r'C:\Users\someuser\Desktop\test')
print("Local Files: ")
print(local_files)
print('Azure Files in the Cloud:')
files_incloud= list()
generator = file_service.list_directories_and_files('filesharename')
for file_or_dir in generator:
files_incloud.append(file_or_dir.name)
print(file_or_dir.name)
def Diff(local_files,files_incloud):
return(list(set(local_files) - set(files_incloud)))
print("Files NOT in the Cloud FILESHARE are: ")
print(Diff(local_files,files_incloud))
在我的测试场景中,我在本地有两个文件:text1.txt和text2.txt和 在我拥有的Azure云共享中:仅text2.txt,结果如下:
Local Files:
['text1.txt', 'text2.txt']
Azure Files in the Cloud:
xxxxxx.pptx
xxxx.pdf
text2.txt
Files NOT in the Cloud FILESHARE are:
['text1.txt']
用于字符串匹配的新功能:
result = (Diff(local_files,files_incloud))
print (result)
print("\n")
print("Matching Strings:")
print("\n")
for item in result:
if "text" in item:
print item
结果:
Matching Strings:
text1.txt
我也在此仓库上分享了它:https://github.com/adamsmith0016/Azure-storage