【问题标题】:Flask File upload to Azure Data Lake StoreFlask 文件上传到 Azure Data Lake Store
【发布时间】:2019-05-20 16:16:56
【问题描述】:

我正在尝试将 Flask (Flask-restplus) 应用程序中的文件直接上传到 azure 数据湖存储区 (gen1)。

flask 应用程序正在 azure web 应用程序上运行。这是否可能,或者我需要先将其上传到 azure Web 应用服务器,然后再将其移至 ADLS?

用于 ADLS (https://github.com/Azure/azure-data-lake-store-python) 的 python 库似乎没有任何功能。例如,ADLUploader 需要一个本地文件作为源。

谢谢!

【问题讨论】:

    标签: python-3.x azure-data-lake flask-restful


    【解决方案1】:

    没有直接的方法。

    一种方法是,如您所述,上传到应用服务器,然后移动到 ADLS。

    另一种可能的方法是,如果你可以convert the file content to bytes,那么你可以在ADLS中使用其他一些方法,比如open() / write(),细节如下(只是伪代码,你可以根据需要修改它们):

    1.创建客户端:myclient = core.AzureDLFileSystem(adlCreds,store_name=adlsAccountName)

    2.获取你要上传的文件名,在ADLS中创建一个空文件:myclient.touch("test/myfile.txt")

    3.以'wb'模式在ADLS中打开文件:myfile = myclient.open('test/myfile.txt','wb')

    4.使用一些方法将你上传的文件内容转换为字节

    5.使用 write() 和 flush() 方法将字节内容写入 ADLS 中的文件:

    myfile.write(in_file.read()) #the content should be bytes
    myfile.flush(force=True)
    

    【讨论】:

    • 这实际上是个好主意。我去了,它有效。接下来我将使用更大的文件进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    相关资源
    最近更新 更多