全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

简单上传(Python)

最近更新时间:2023-06-08 15:00:41

上传本地文件

以下代码用于将指定目录下某一个文件上传,同时可以指定文件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('<yourFileContent>', headers=None)

# 将字符串作为 value 上传,并设置对象 tag
# key 和 value 需要 url 编码
taggingStr = '<key>=<value>'
headers = {'x-kss-tagging': taggingStr}
ret = k.set_contents_from_string('<yourFileContent>', headers=headers)

抓取网络资源上传

以下代码用于从第三方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)
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈