简单上传
目录
简单上传指的是使用OSS API中的PutObject方法上传单个文件(Object),本文主要介绍通过Python SDK进行简单上传。
简单上传分为从内存中上传和从文件中上传。
上传文件主要可以设置的属性有:
- 元数据
- 访问权限
从内存中上传
简答上传可以使用内存中的数据作为OSS文件的数据源。以下代码用于从内存中简单上传:
import oss
# 设置基本信息
APIKey = '<your_API_key>'
APIKeySecrete = '<your_API_key_secrete>'
EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
BucketName = '<your_bucket_name>'
# <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
ObjectName = '<your_object_name>'
# 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
auth = oss.Auth(APIKey, APIKeySecrete)
# 使用密钥, 节点来初始化储存信息,这里以华北三为案例
bucket = oss.Bucket(auth, EndPoint, BucketName)
# 从内存中进行简单上传
# 内存上传支持字符串、Byte、Unicode、网络流等。
# 上传Byte
# bucket.put_object('testUpload.txt', b'Welcome to Inspur Cloud')
# 上传Unicode
# bucket.put_object('testUpload.txt', u'Welcome to Inspur Cloud')
# 上传网络流
# input = requests.get('http://www.inspur.com')
# bucket.put_object('testUpload.txt', input)
# 上传字符串
bucket.put_object('testUpload.txt', '欢迎来到浪潮云')
从文件中上传
简单上传可以使用本地文件作为OSS文件的数据源。以下代码用于从文件中简单上传:
import oss
import os
# 设置基本信息
APIKey = '<your_API_key>'
APIKeySecrete = '<your_API_key_secrete>'
EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
BucketName = '<your_bucket_name>'
# <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
ObjectName = '<your_object_name>'
# <your_local_file_path>为绝对路径,需包含文件后缀名,若无此文件则创建新文件。如:“D:/recv/file.txt”
LocalFilePath = '<your_local_file_path>'
# 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
auth = oss.Auth(APIKey, APIKeySecrete)
# 使用密钥, 节点来初始化储存信息,这里以华北三为案例
bucket = oss.Bucket(auth, EndPoint, BucketName)
# 需要以二进制方式打开文件
with open(LocalFilePath, 'rb') as f:
# 从头开始文件读写,使用tell()来返回当前位置
f.seek(0, os.SEEK_SET)
cursor = f.tell()
# 进行上传
bucket.put_object(ObjectName, f)