我是 Azure 新手,正在尝试使用其 Python SDK 将文件(数以万计)上传到 Azure blob 存储。我在网上遇到的所有示例在上传之前都会打开一个文件:
为什么这是必要的?我担心这是否会减慢上传速度。
AWS S3 的 Boto3 不执行此操作。您能解释一下这背后的原因吗?
为什么这是必要的?我担心这是否会减慢上传速度。
要上传数据,Azure Blob 存储客户端库需要一个
file-like
对象。
大文件可以快速上传,因为文件是在
chunks
中读取的。在上传之前打开文件并不一定会减慢上传过程。事实上,从类似文件的对象中读取数据比从磁盘上的文件中读取数据更有效。
代码:
with open("./SampleSource.txt", "rb") as data:
blob.upload_blob(data)
上面的代码打开文件,创建一个类文件对象,并将类文件对象的内容上传到 Blob 存储。
使用 Boto3 上传到 AWS S3 时适用相同的过程 - 您可以通过
upload_fileobj
使用文件对象进行上传。
代码:
with open('filename', 'rb') as data:
s3.upload_fileobj(data, 'mybucket', 'mykey')
参考: