调用阿里云SDK,实现阿里云OSS大量bucket文件的导出

调用阿里云SDK,实现阿里云OSS大量bucket文件的导出

脚本如下:

# -*- coding: utf-8 -*-
import oss2
from itertools import islice

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
auth = oss2.Auth('*,*')


def list_all_bucket():
  # Endpoint以杭州为例,其它Region请按实际情况填写。
  service = oss2.Service(auth, 'http://oss-cn-beijing.aliyuncs.com')
  # 列举所有的存储空间。
  for b in oss2.BucketIterator(service):
      print(b.name)
  #list_all_bucket()


def create_bucket(bucket_name):
  # Endpoint以杭州为例,其它Region请按实际情况填写。
  bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com', bucket_name)  
  # 设置存储空间为私有读写权限。
  bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE)


def info_bucket(bucket_name):
  bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com', bucket_name)
  bucket_info = bucket.get_bucket_info()
  print('name: ' + bucket_info.name)
  print('storage class: ' + bucket_info.storage_class)
  print('creation date: ' + bucket_info.creation_date)
  print('intranet_endpoint: ' + bucket_info.intranet_endpoint)
  print('extranet_endpoint ' + bucket_info.extranet_endpoint)
  print('owner: ' + bucket_info.owner.id)
  print('grant: ' + bucket_info.acl.grant)
  print('data_redundancy_type:' + bucket_info.data_redundancy_type)


def delete_bucket(bucket_name):
  bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com', bucket_name)
  try:
      # 删除存储空间。
      bucket.delete_bucket()
  except oss2.exceptions.BucketNotEmpty:
      print('bucket 不为空')
  except oss2.exceptions.NoSuchBucket:
      print('bucket 不存在')


def download_obj(bucket_name,local_dir):
  bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com', bucket_name)
  #print出该bucket下的所有objects
  for obj in oss2.ObjectIterator(bucket):
    #print(obj.key)
    file_name = obj.key.split('/')[-1]
    #print(file_name)
    file = local_dir + '/' + file_name
    #print(file)
    bucket.get_object_to_file(obj.key, file)


def some_obj(bucket_name,local_dir):
  bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com', bucket_name)
  for obj in islice(oss2.ObjectIteratorV2(bucket), 20):
    #print(obj.key)
    file_name = obj.key.split('/')[-1]
    #print(file_name)
    file = local_dir + '/' + file_name
    #print(file)
    bucket.get_object_to_file(obj.key, file)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值