烧瓶文件上传到Azure Data Lake Store

时间:2019-05-19 22:26:42

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

我正在尝试将Flask(Flask-restplus)应用程序中的文件直接上传到Azure Data Lake Store(gen1)。

flask应用程序正在azure Web应用程序上运行。甚至有可能吗,还是在将其移动到ADLS之前我需要先将其上传到azure Web应用服务器?

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

谢谢!

1 个答案:

答案 0 :(得分:0)

没有直接的方法。

一种方法是,如上所述,上传到应用服务器,然后再移动到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)