python流式下载处理_流式下载 - 对象存储 OSS - 阿里云
如果要下載的文件太大,或者一次性下載耗時太長,您可以通過流式下載,一次處理部分內容,直到完成文件的下載。
以下代碼用于流式下載文件:
# -*- coding: utf-8 -*-
import oss2
# 阿里云主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建并使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
auth = oss2.Auth('', '')
# Endpoint以杭州為例,其它Region請按實際情況填寫。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')
# bucket.get_object的返回值是一個類文件對象(File-Like Object),同時也是一個可迭代對象(Iterable)。
object_stream = bucket.get_object('')
print(object_stream.read())
# 由于get_object接口返回的是一個stream流,需要執行read()后才能計算出返回Object數據的CRC checksum,因此需要在調用該接口后做CRC校驗。
if object_stream.client_crc != object_stream.server_crc:
print "The CRC checksum between client and server is inconsistent!"
以下代碼用于將數據下載到本地文件:
import shutil
# object_stream是類文件對象,您可以使用shutil.copyfileobj方法,將數據下載到本地文件中。
object_stream = bucket.get_object('')
with open('', 'wb') as local_fileobj:
shutil.copyfileobj(object_stream, local_fileobj)
以下代碼用于流式拷貝到另一個文件:
# object_stream是一個可迭代對象,您可以將它流式拷貝到另一個文件中。
object_stream = bucket.get_object('')
bucket.put_object('', object_stream)
總結
以上是生活随笔為你收集整理的python流式下载处理_流式下载 - 对象存储 OSS - 阿里云的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 离谱!小米员工吐槽Redmi新机支持双S
- 下一篇: 运行catia_教程 | CATIA宏的