생성 저장 공간, 업로드, 다운로드, 목록, 파일 삭제 등을 포함한 알리 구름 OSS, 파이썬 SDK 퀵 스타트,

# - * - 코딩 : UTF-8 - * -
   
  수입 운영 체제
  수입 또 shutil
   
  수입 oss2
   
   
  # 다음 코드는 기본 파일 업로드, 다운로드, 목록, 사용을 삭제 보여줍니다.
   
   
  # 먼저 AccessKeyId, AccessKeySecret, 엔드 포인트 및 기타 정보를 초기화합니다.
  # 환경 변수를 통해 취득 등 "<당신의 AccessKeyId>"등 실제 AccessKeyId 및 교체.
  #
  항주 영역에서 # 예를 들어, 엔드 포인트가 될 수 있습니다 :
  # http://oss-cn-hangzhou.aliyuncs.com
  # https://oss-cn-hangzhou.aliyuncs.com
  HTTP, HTTPS 프로토콜 # 별도의 방문.
  access_key_id = os.getenv ( 'OSS_TEST_ACCESS_KEY_ID ', '<你的AccessKeyId> ')
  access_key_secret = os.getenv ( 'OSS_TEST_ACCESS_KEY_SECRET ', '<你的AccessKeySecret> ')
  BUCKET_NAME = os.getenv ( 'OSS_TEST_BUCKET ', '<你的버킷> ')
  엔드 포인트 = os.getenv ( 'OSS_TEST_ENDPOINT ', '<도메인 이름 방문> ')
   
   
  # 확인을 위해 위의 매개 변수가 올바르게 가득
  PARAM에 대한 (access_key_id, access_key_secret, BUCKET_NAME, 엔드 포인트)에서 :
  주장 '< ' 하지 PARAM에, '매개 변수를 설정 : ' + PARAM
   
   
  # 모든 관련 인터페이스가 버킷 객체에 의해 수행 될 수있는 객체, 버킷 개체 만들기
  버킷 = oss2.Bucket (oss2.Auth (access_key_id, access_key_secret), 종점 BUCKET_NAME)
   
   
  # 문자열을 업로드합니다. 개체 이름 motto.txt입니다, 유명한 내용이었다.
  bucket.put_object ( 'motto.txt ', '포기하지 마십시오 -. 마윈에게 ')
   
  취득 메타 데이터 개체의 #
  object_meta = bucket.get_object_meta ( '개체 이름 ')
  print('last modified: ' + object_meta.last_modified)
  print('etag: ' + object_meta.etag)
  print('size: ' + object_meta.content_length)
   
  # 下载到本地文件
  bucket.get_object_to_file('motto.txt', '本地文件名.txt')
   
   
  # 把刚刚上传的Object下载到本地文件 “座右铭.txt” 中
  # 因为get_object()方法返回的是一个file-like object,所以我们可以直接用shutil.copyfileobj()做拷贝
  with open(oss2.to_unicode('本地座右铭.txt'), 'wb') as f:
  shutil.copyfileobj(bucket.get_object('motto.txt'), f)
   
   
  # 把本地文件 “座右铭.txt” 上传到OSS,新的Object叫做 “我的座右铭.txt”
  # 注意到,这次put_object()的第二个参数是file object;而上次上传是一个字符串。
  # put_object()能够识别不同的参数类型
  with open(oss2.to_unicode('本地座右铭.txt'), 'rb') as f:
  bucket.put_object('云上座右铭.txt', f)
   
   
  # 上面两行代码,也可以用下面的一行代码来实现
  bucket.put_object_from_file('云上座右铭.txt', '本地座右铭.txt')
   
   
  # 列举Bucket下10个Object,并打印它们的最后修改时间、文件名
  for i, object_info in enumerate(oss2.ObjectIterator(bucket)):
  print("{0} {1}".format(object_info.last_modified, object_info.key))
   
  if i >= 9:
  break
   
   
  # 删除名为motto.txt的Object
  bucket.delete_object('motto.txt')
   
  # 也可以批量删除
  # 注意:重复删除motto.txt,并不会报错
  bucket.batch_delete_objects(['motto.txt', '云上座右铭.txt'])
   
   
  # 确认Object已经被删除了
  assert not bucket.object_exists('motto.txt')
   
   
  # 获取不存在的文件会抛出oss2.exceptions.NoSuchKey异常
  try:
  bucket.get_object('云上座右铭.txt')
  except oss2.exceptions.NoSuchKey as e:
  print(u'已经被删除了:request_id={0}'.format(e.request_id))
  else:
  assert False
   
  # 清除本地文件
  os.remove(u'本地文件名.txt')
  os.remove(u'本地座右铭.txt')

추천

출처www.cnblogs.com/fangjianyi/p/11108858.html