阿里云OSS简单上传本地文件

 

上传本地文件

# -*- coding: utf-8 -*-
import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

# 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。
with open('<yourLocalFile>', 'rb') as fileobj:
    # Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。
    fileobj.seek(1000, os.SEEK_SET)
    # Tell方法用于返回当前位置。
    current = fileobj.tell()
    bucket.put_object('<yourObjectName>', fileobj)

简单列举文件

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

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
# Endpoint以杭州为例,其它Region请按实际情况填写。
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')

for b in islice(oss2.ObjectIterator(bucket), 10):
    print(b.key)

 

如何获取OSS文件的访问地址?

OSS的Object地址由域名、bucketName、object组成,具体格式为:bucketName.endpoint/object。

 

 例如:杭州地域的bucket:aaa,其中有一个key为123.txt的Object,如果要通过外网访问,拼接后的链接地址为: aaa.oss-cn-hangzhou.aliyuncs.com/123.txt。其中各个地域的Bucket对应的endpoint,如果Bucket的ACL权限为私有的情况下则需要在上述基础上至少还要包含Signature,Expires,OSSAccessKeyId三个参数。

 如果Bucket绑定了自定义域名例如abc.example.com,客户希望通过自定义域名来访问,只需要将“aaa.oss-cn-hangzhou.aliyuncs.com”更改为abc.example.com即可。具体的自定义域名可以在下图中的域名管理页面中查看。

posted @ 2019-02-22 16:12  553490191  阅读(4364)  评论(0编辑  收藏  举报