如何解决从可下载的网址将数据提取到Blob存储中,而无需下载文件
我正在尝试从https://dumps.wikimedia.org/enwiki/20201001/
提取数据,这是使用Python将Wiki转储到Wiki的Wiki。
每个文件的大小约为200-300 MB,但关键是文件太多,总大小超过50 GB。
我不想破坏本地笔记本电脑的存储,因此我不想将文件下载到本地驱动器,然后将其上传到Blob存储。
我是否可以选择将文件从ULR直接流式传输到Blob存储?
解决方法
您可以创建一个Data Factory来支持REST API作为源类型,并支持Blob存储作为接收器。
,如果您使用的是软件包azure-storage-blob 12.5.0,则可以直接使用start_copy_from_url
方法。请注意,您需要使用此方法一次复制每个文件。
这是示例代码:
from azure.storage.blob import BlobServiceClient
CONNECTION_STRING="DefaultEndpointsProtocol=https;AccountName=xxx;AccountKey=xxx;EndpointSuffix=core.windows.net"
def run_sample():
blob_service_client = BlobServiceClient.from_connection_string(CONNECTION_STRING)
source_blob = "http://www.gutenberg.org/files/59466/59466-0.txt"
copied_blob = blob_service_client.get_blob_client("your_container_name",'59466-0.txt')
#note: the method returns immediately when the copy is in progress,you need to check the copy status as per the official doc mentioned below.
copied_blob.start_copy_from_url(source_blob)
if __name__ == "__main__":
run_sample()
有关更多详细信息,请参阅github中的the completed sample。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。