Azure File文件共享(6):使用Python开发

Azure文件共享服务提供了多种方式的访问接口,包括Powershell,.Net, Java, Python等等,本章主要介绍如何使用Python来访问Azure File存储。python

  1. 关于Python环境的安装,Azure SDK for python的安装配置,Linux和Windows上的模块升级,请参考博客:shell

    http://cloudapps.blog.51cto.com/3136598/1772880api

  2. 首先,导入Azure storage file所须要的模块:app

     

    from azure.storage.file import FileService
    from azure.storage.file import ContentSettings
    ide

     

  3. 默认的service endpoint是指向global Azure的,因此首先须要设置中国Azure的服务URL,另外也须要设置你的存储帐户,存储的key等基本信息测试

     

    endpointSuffix = "core.chinacloudapi.cn"
    myStorageAccount = "mystorageacctfile"
    myStorageKey = "Your account key"
    mysharename = "mypythonshare"
    mydirname = "sampledir"

     

  4. 初始化你的文件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_pathcreate_file_from_streamcreate_file_from_bytes等等,根据须要使用,本测试中使用create_file_from_pathorm

 

    # 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的方式也利用多种不一样的平台,不一样的语言,提供数据交换和共享,能够在合适的场景中使用。				
相关文章
相关标签/搜索