Azure Blob Using Python



我正在访问一个允许我下载CSV文件的网站。我想将CSV文件直接存储到blob容器中。我知道一种方法是在本地下载文件,然后上传文件,但我想跳过在本地下载文件的步骤。有什么方法可以让我做到这一点吗?

我尝试了以下操作:

block_blob_service.create_blob_from_path('containername','blobname','https://*****.blob.core.windows.net/containername/FlightStats',content_settings=ContentSettings(content_type='application/CSV'))

但是我一直得到错误,说明没有找到路径。任何帮助都是感激的。谢谢!

create_blob_from_path中的file_path是您本地文件的路径,看起来像"C:xxxxxx"。此路径('https://*****.blob.core.windows.net/containername/FlightStats')是Blob URL。

您可以下载文件到字节数组或流,然后使用create_blob_from_bytescreate_blob_from_stream方法。

另一个答案是使用所谓的"Azure SDK for Pythonlegacy,


我建议,如果它是新的实现,然后使用Gen2存储帐户(而不是Gen1或Blob存储)。

对于Gen2存储帐户,参见下面的示例:

from azure.storage.filedatalake import DataLakeFileClient
data = b"abc"
file = DataLakeFileClient.from_connection_string("my_connection_string",
file_system_name="myfilesystem", file_path="myfile")
file.append_data(data, offset=0, length=len(data))
file.flush_data(len(data))

这是痛苦的,如果你追加多次,那么你将不得不跟踪offset在客户端。

最新更新