Azure文件共享服務提供了多種方式的訪問接口,包括Powershell,.Net, Java, Python等等,本章主要介紹如何使用Python來訪問Azure File存儲。python
關於Python環境的安裝,Azure SDK for python的安裝配置,Linux和Windows上的模塊升級,請參考博客:shell
首先,導入Azure storage file所須要的模塊:app
from azure.storage.file import FileService
from azure.storage.file import ContentSettingside
默認的service endpoint是指向global Azure的,因此首先須要設置中國Azure的服務URL,另外也須要設置你的存儲帳戶,存儲的key等基本信息測試
endpointSuffix = "core.chinacloudapi.cn"
myStorageAccount = "mystorageacctfile"
myStorageKey = "Your account key"
mysharename = "mypythonshare"
mydirname = "sampledir"
初始化你的文件service:spa
#initial file service
file_service = FileService(account_name=myStorageAccount, account_key=myStorageKey,endpoint_suffix=endpointSuffix)
5. 建立你的文件共享和目錄:code
#create file share
if(not file_service.exists(mysharename)):
file_service.create_share(mysharename)
#create directory under the share
if(not file_service.exists(mysharename,mydirname)):
file_service.create_directory(mysharename, mydirname)
6. 目錄建立完成後,就能夠上傳文件,或者寫入文件,上傳或寫入文件有多種方式,好比create_file_from_bytes or create_file_from_text , create_file_from_path,create_file_from_stream,create_file_from_bytes等等,根據須要使用,本測試中使用create_file_from_path:orm
# upload a file to the share at directory you just created
file_service.create_file_from_path(
mysharename,
mydirname,
'hdinsight.publishsettings',
'd:\\hdinsight.publishsettings')
7. 你能夠經過Python的API列舉出共享下,根目錄下全部的文件,或者指定目錄,列出指定目錄下全部的文件或者目錄:blog
#List files and directories of the share
filediritertors = file_service.list_directories_and_files(mysharename,mydirname)
for file_or_dir in filediritertors:
print(file_or_dir.name)
8. 那麼怎麼從文件中獲取內容或者獲取整個文件? Python SDK也提供了多種方式,好比get_file_to_path, get_file_to_stream, get_file_to_bytes, or get_file_to_text. 等,本例中獎文件保存到本地:
#Download file to local path
file_service.get_file_to_path(mysharename, mydirname, 'hdinsight.publishsettings', 'D:\\movie\\hdinsight.publishsettings')
9. 最後,看看如何刪除文件,刪除目錄,刪除共享,也比較簡單:
#delete a file
file_service.delete_file(mysharename, mydirname, 'hdinsight.publishsettings')
#delete a directory
file_service.delete_directory(mysharename,mydirname)
#delete a share
if(file_service.exists(share_name=mysharename)):
file_service.delete_share(mysharename)
利用Python來訪問文件共享仍是很是方便的,File share的方式也利用多種不一樣的平臺,不一樣的語言,提供數據交換和共享,能夠在合適的場景中使用。