Flask 文件上传到 Azure Data Lake Store
Flask File upload to Azure Data Lake Store
我正在尝试将文件从 Flask (Flask-restplus) 应用程序直接上传到 azure data lake store (gen1)。
Flask 应用程序 运行 在 Azure Web 应用程序上。这是否可能,或者我是否需要先将其上传到 Azure Web 应用程序服务器,然后再将其移动到 ADLS?
用于 ADLS (https://github.com/Azure/azure-data-lake-store-python) 的 python 库似乎没有任何功能。例如,ADLUploader
需要一个本地文件作为源。
谢谢!
没有直接的方法。
一种方法是如您所述,上传到应用服务器,然后移动到 ADLS。
另一种可能的方法是,如果你可以 convert the file content to bytes
,那么你可以在 ADLS 中使用一些其他方法,如 open() / write()
,详细信息如下(只是伪代码,你可以根据你的需要):
1.Create一个客户:myclient = core.AzureDLFileSystem(adlCreds,store_name=adlsAccountName)
2.Get你上传的文件名,在ADLS中创建一个空文件:myclient.touch("test/myfile.txt")
3.Open ADLS 中 'wb' 模式的文件:myfile = myclient.open('test/myfile.txt','wb')
4.Use一些将您上传的文件内容转换为字节的方法
5.Use write() 和 flush() 方法将字节内容写入 ADLS 中的文件:
myfile.write(in_file.read()) #the content should be bytes
myfile.flush(force=True)
我正在尝试将文件从 Flask (Flask-restplus) 应用程序直接上传到 azure data lake store (gen1)。
Flask 应用程序 运行 在 Azure Web 应用程序上。这是否可能,或者我是否需要先将其上传到 Azure Web 应用程序服务器,然后再将其移动到 ADLS?
用于 ADLS (https://github.com/Azure/azure-data-lake-store-python) 的 python 库似乎没有任何功能。例如,ADLUploader
需要一个本地文件作为源。
谢谢!
没有直接的方法。
一种方法是如您所述,上传到应用服务器,然后移动到 ADLS。
另一种可能的方法是,如果你可以 convert the file content to bytes
,那么你可以在 ADLS 中使用一些其他方法,如 open() / write()
,详细信息如下(只是伪代码,你可以根据你的需要):
1.Create一个客户:myclient = core.AzureDLFileSystem(adlCreds,store_name=adlsAccountName)
2.Get你上传的文件名,在ADLS中创建一个空文件:myclient.touch("test/myfile.txt")
3.Open ADLS 中 'wb' 模式的文件:myfile = myclient.open('test/myfile.txt','wb')
4.Use一些将您上传的文件内容转换为字节的方法
5.Use write() 和 flush() 方法将字节内容写入 ADLS 中的文件:
myfile.write(in_file.read()) #the content should be bytes
myfile.flush(force=True)