#cython: language_level=3
import sys
import oss2
import logging
from itertools import islice
OSS_BUCKEET_NAME = "xxxxx"
OSS_AK_ID = "xxxxxxxxxx"
OSS_AK_SECRET = "xxxxxxxxxxxx"
OSS_ENDPOINT = "https://oss-cn-beijing.aliyuncs.com"
oss2.set_file_logger("./oss.log", 'oss2', logging.INFO)
auth = oss2.Auth(OSS_AK_ID,OSS_AK_SECRET)
bucket = oss2.Bucket(auth=auth, endpoint=OSS_ENDPOINT, bucket_name=OSS_BUCKEET_NAME)
def percentage(consumed_bytes, total_bytes):
if total_bytes:
rate = int(100 * (float(consumed_bytes) / float(total_bytes)))
print('\r{0}% '.format(rate), end='')
sys.stdout.flush()
def download(source_file_list):
try:
if "," in source_file_list:
source_file_list = source_file_list.split(",")
for source_file in source_file_list:
path = source_file.split("/")[-1]
oss2.resumable_download(bucket, source_file, path, progress_callback=percentage)
else:
path = source_file_list.split("/")[-1]
oss2.resumable_download(bucket, source_file_list, path, progress_callback=percentage)
except oss2.exceptions as e:
print('status={0}, request_id={1}'.format(e.status, e.request_id))
def list_file():
for b in islice(oss2.ObjectIterator(bucket=bucket, prefix='test/'), 20):
print(b.key)
if __name__ == '__main__':
help = """
HELP:
====================================================================================
list file: Usage: Example: ./oss list
Download one file: Usage: Example: ./oss test/test.txt
Download muti files: Usage: Example: ./oss test/test111.txt,test/test222.txt
====================================================================================
"""
print(help)
if sys.argv[1] == "list":
list_file()
else:
download(sys.argv[1])