简单上传

最近更新时间:2021-10-12 15:26:19

上传本地文件

以下代码用于将指定目录下某一个文件上传,同时可以指定文件ACL。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 获取存储空间实例。
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 将指定目录下某一个文件上传,同时可以指定文件 ACL
# 填写Object完整路径。Object完整路径中不能包含Bucket名称。
k = b.new_key('<yourKeyName>')

# x-kss-storage-class有效值为"STANDARD"、"STANDARD_IA"。"STANDARD"表示标准存储,"STANDARD_IA"表示低频存储,如果不指定,默认为标准存储。
headers = {"x-kss-storage-class": "STANDARD_IA"}

# 填写本地文件的完整路径。
# object policy : 'private' or 'public-read'
ret = k.set_contents_from_filename("<yourSourceFilePath>", policy="private", headers=headers)

# 请求ID。请求ID是本次请求的唯一标识,强烈建议在程序日志中添加此参数。
print(ret.headers['x-kss-request-id'])

# ETag是put_object方法返回值特有的属性,用于标识一个Object的内容。
print(eval(ret.headers['ETag']))

# HTTP返回码。
if ret and ret.status == 200:
	print("上传成功")

上传字符串

以下代码用于将字符串作为value上传

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 获取存储空间实例。
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 将指定目录下某一个文件上传,同时可以指定文件 ACL
# 填写Object完整路径。Object完整路径中不能包含Bucket名称。
k = b.new_key('<yourKeyName>')

# 上传字符串
k.set_contents_from_string('YOUR_FILE_CONTENTS')

抓取网络资源上传

以下代码用于从第三方URL拉取文件,并上传至KS3某个 bucket 中存储成名为 object 的文件。

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 获取存储空间实例。
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 从第三方URL拉取文件,并上传至KS3某个 bucket 中存储成名为 object 的文件。
b.fetch_object('www-logo', source_url='http://fe.ksyun.com/project/resource/img/www-logo.png')

有关抓取网络资源上传的更多信息,请参见:Put Fetch

使用签名URL临时授权上传文件

from ks3.connection import Connection

# 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
# 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
# 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
c = Connection('<YOUR_ACCESS_KEY>', '<YOUR_SECRET_KEY>', host='YOUR_REGION_ENDPOINT')

# 获取存储空间实例。
b = c.get_bucket('<YOUR_BUCKET_NAME>')

# 填写Object完整路径。Object完整路径中不能包含Bucket名称。
k = b.new_key("<yourKeyName>")
if k:
	# 生成上传文件的签名URL,有效时间为60秒。
	url = k.get_presigned_url(60)
	print(url)

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈