Мониторинг состояния файлов в облачной конечной точке (учетной записи хранения) по сравнению с конечной точкой сервера - PullRequest
0 голосов
/ 06 февраля 2019

Я написал несколько сценариев, использующих ориентированную на Python и Go документацию, которые могут загружать / скачивать файлы и т. Д., И теперь я думаю об управлении файлами между машиной и моей учетной записью хранилища Azure.

Сейчас я думаю о создании / использовании чего-то похожего на «git status», которое вы можете использовать, чтобы увидеть различия между локальным git-репозиторием и удаленным git-репозиторием.Сначала я думал о том, чтобы использовать какую-то систему очередей, но я не могу найти документацию по этому вопросу для файлов с помощью Azure Storage SDK.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 07 февраля 2019

Есть несколько способов проверить, что вы ищете в данный момент, простой скрипт на 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

...