产品
热门产品
人工智能
存储
网络
SaaS基础设施
视频云
物联网
应用PaaS
研发运维
专有部署
热门产品
云舟观测 GC
一站式数据采集与应用监控观测平台
人工智能
AI平台
天纪大模型开发 TLM
大模型微调、训练
天纪AI开发 TAI
全流程AI开发平台
天纪智能体开发 ADP
大模型驱动的智能体开发
天纪智能问答 RDP
检索增强生成(RAG)的问答
AI应用
内容审核 CM
图片审核|文本审核|音频审核|视频审核
人脸人体识别 FHR
人脸识别|人体识别|人脸比对|摔倒检测
OCR识别 OCR
卡证识别|通用文本识别|车牌识别
图像技术 IA
面向图片场景提供的多种人工智能技术
模型市场 MaaS
图片、音频、视频等多场景的算法模型
视觉分析
视图计算 VEC
云边融合 AI赋能的智能视图计算
存储
对象存储 OBS
稳定、安全、可靠的云存储服务
文件存储 QHDFS
具有标准HDFS访问协议的分布式文件系统
网络
内容分发网络 CDN
安全、稳定、低延时的分发加速服务
P2P内容分发 PCDN
利用闲置资源而构建的低成本高品质CDN
SaaS基础设施
API文档管理 APICloud
API文档、调试、MOCK一体化协作平台
统一身份认证 IAM
统一的身份认证、授权管理
幕印企业学堂 MuYin
企业培训|内容付费|知识营销
视频云
视频直播 LIVE
大规模实时转码、低延时的直播服务
视频点播 VOD
视频流畅播放服务
音视频通话 RTC
便捷的跨平台实时音视频互动直播服务
媒体处理 MPC
简洁的云媒体转码及内容合成处理服务
视频工具 SDK
视频剪辑SDK | 播放SDK
易讲教室直播 YiJiang
视频技术与传统教室融合
物联网
帝视物联网 IOT
低延时、海量存储的物联网视频监控服务
企业物联网平台
设备管理|设备接入|规则引擎|应用开发
生活物联网平台
针对消费级智能设备的物联网平台
应用PaaS
云短信 SMS
融合三网,安全可信的短信服务
研发运维
云舟观测 GC
一站式数据采集与应用监控观测平台
三六零天御加固保 JiaGu
提供安全可靠的加固防护产品及服务
兼容性测试 OpenTest
提供数百款TOP机型的云测服务
真机租用 RentPhone
远程真机租用,流畅体验如手机在手
iOS预审 iOSPre
智能扫描、分析、筛查ios审核的被拒风险点
专有部署
360云计算管理平台 Stack
规划、建设、运维一体的云计算解决方案
奇麟大数据 QiLin
企业级一站式大数据平台
360容器管理平台 Container
可对外私有化的容器云平台
360AI开发平台专有版 Prophet
全流程机器学习开发平台
更多产品,敬请期待
解决方案
产品解决方案
行业解决方案
产品解决方案
视频
通用直播解决方案
短视频解决方案
公共语音房聊天室解决方案
物联网
儿童手表音视频通话
云端NVR解决方案
数据上云
通用存储解决方案
IoT设备
AI+IPC解决方案
智能门锁解决方案
安防传感解决方案
智能网关解决方案
个护健康解决方案
账号体系
360用户帐号体系解决方案
行业解决方案
智慧城市
智慧社区解决方案
智慧交通解决方案
电商视频解决方案
电商视频解决方案
电商平台收款解决方案
教育
在线教育解决方案
互动课堂解决方案
全屋智能
智慧公寓解决方案
智慧酒店解决方案
家庭智能解决方案
智慧安防解决方案
医疗
健康看护解决方案
智能制造
工业物联网解决方案
游戏
游戏音视频解决方案
更多解决方案,敬请期待
帮助支持
技术社区
关于我们
控制台
登录
注册
云存储
云直播
产品文档
常见问题
API文档
云点播
产品文档
快速入门
API文档
CDN
产品文档
API文档
云存储
产品文档
SDK手册
API文档
互动直播
产品文档
API文档
操作指南
SDK管理
播放SDK
上传SDK
剪辑SDK
媒体处理
产品文档
API文档
帝视
产品文档
API文档
操作指南
支付平台
产品列表
产品文档
渠道接入解析
内容审核
产品文档
API文档
OCR识别
产品文档
API文档
人脸与人体识别
产品文档
API文档
SSL证书
产品说明
购买指南
电子签章
产品介绍
接入流程
云短信
接口文档
物联网平台
产品简介
快速入门
幕印企业学堂
产品介绍
生活物联网平台
产品简介
快速入门
图片处理
产品介绍
接口文档
视图计算
产品介绍
快速入门
常见问题
易讲-教室直播
产品介绍
帮助说明
产品手册
产品概述
快速入门
控制台指南
产品计费
API手册2.0
接入须知
Bucket API
Object API
golang SDK接入示例
Python SDK接入示例
Java sdk接入示例
AWS Command Line使用示例
SDK参考
SDK接入说明
上传SDK
Web上传SDK
IOS版本说明
IOS开发文档
Android版本说明
Android开发文档
API手册
接入须知
上传过程
表单上传
分片上传初始化
分片上传传输
分片上传完成
下载过程
获取文件的内容
获取文件下载地址
批量获取下载地址
资源管理
查看资源信息
删除资源
批量删除文件
首页
>
开发者中心
>
云存储
>
API手册2.0
>
Python SDK接入示例
# python(3.5) sdk调用示例 ## Bucket: 1. [创建Bucket](#1) 2. [Bucket列表 ](#2) 3. [Object列表 ](#3) 4. [删除 Bucket](#4) ## Object: 1. [上传单个Object](#11) 2. [分片上传 ](#12) * [初始化分片上传Object](#12.1) * [分片上传Object](#12.2) * [中止分片上传Object](#12.3) * [获取分片上传列表](#12.4) * [提交分片上传Object](#12.5) 3. [下载 Object](#13) 4. [删除 Object](#14) ## 依赖库及其版本: ``` attrs==19.3.0 boto3==1.10.34 botocore==1.13.34 Click==7.0 docutils==0.15.2 enum-compat==0.0.3 jmespath==0.9.4 python-dateutil==2.8.0 s3transfer==0.2.1 six==1.13.0 typing==3.6.4 urllib3==1.25.7 ``` ### Bucket操作 <h4 id="1">创建Bucket</h4> ``` u""" usage: command line input "python CreateBucket.py -bucket <BUCKET_NAME>" exp: python CreateBucket.py -bucket bucket1 """ import boto3 import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" BUCKET_NAME = sys.argv[2] SERVICE_NAME = "s3" def CreateBucket(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.create_bucket( ACL="public-read-write", Bucket=BUCKET_NAME, CreateBucketConfiguration={ 'LocationConstraint': REGION } ) print(response) if __name__ == '__main__': CreateBucket() ``` <h4 id="2">Bucket列表 </h4> ``` u""" usage: command line input "python ListBucket.py" """ import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" def ListBucket(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.list_buckets() print(response) if __name__ == '__main__': ListBucket() ``` <h4 id="3">Object 列表 </h4> ``` u""" usage: command line input "python ListObjects.py -bucket <BUCKET_NAME>" """ import boto3 import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] def ListObjects(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.list_objects( Bucket=BUCKET_NAME ) print(response) if __name__ == '__main__': ListObjects() ``` <h4 id="4">删除 Bucket</h4> ``` u""" usage: command line input "python DeleteBucket.py -bucket <BUCKET_NAME>" exp: python DeleteBucket.py -bucket bucket1 """ import boto3 import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" BUCKET_NAME = sys.argv[2] SERVICE_NAME = "s3" def DeleteBucket(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.delete_bucket( Bucket=BUCKET_NAME ) print(response) if __name__ == '__main__': DeleteBucket() ``` ### object操作 <h4 id="11">上传单个文件 </h4> ``` u""" usage: command line input "python UploadObject.py -bucket <BUCKET_NAME> -file <FILE_NAME>" 需要注意的是,-file 后面的参数是本地需要上传的文件名,假如当前路径下有a_text.txt文件 exp: python UploadObject.py -bucket bucket1 -file a_text.txt """ import boto3 import time import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" BUCKET_NAME = sys.argv[2] SERVICE_NAME = "s3" FILE_NAME = sys.argv[4] def UploadObject(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) # 用微秒μs级时间戳,做上传文件的key值 local_time = time.time() key = str(int(round(local_time*1000000))) with open(FILE_NAME, "rb") as data: client.upload_fileobj( Fileobj=data, Bucket=BUCKET_NAME, Key=key ) if __name__ == '__main__': UploadObject() ``` <h4 id="12">分片上传</h4> <h5 id="12.1">初始化分片上传Object</h5> ``` u""" usage: command line input "python CreateMultipartUpload.py -bucket <BUCKET_NAME>" """ import sys import time import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] def CreateMultipartUpload(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) # 用微秒μs级时间戳,做上传文件的key值 local_time = time.time() key = str(int(round(local_time * 1000000))) response = client.create_multipart_upload( Bucket=BUCKET_NAME, Key=key ) print(response) if __name__ == '__main__': CreateMultipartUpload() ``` <h5 id="12.2">分片上传Object</h5> ``` u""" usage: command line input "python UploadPart.py -bucket <BUCKET_NAME> -file <FILE_NAME>" 需要注意的是,-file 后面的参数是本地需要上传的文件名,假如当前路径下有a_text.txt文件 exp: python UploadPart.py -bucket bucket1 -file a_text.txt """ import sys import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] FILE_NAME = sys.argv[4] def UploadPart(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) # 参数Key和UploadId都是调用初始化分片上传CreateMultipartUpload后,response中返回的 with open(FILE_NAME, "rb") as data: response = client.upload_part( Body=data, Bucket=BUCKET_NAME, Key="1576148709781474", UploadId="4324029f-1ccf-11ea-9536-fa163e5dbb11", PartNumber=1 ) print(response) if __name__ == '__main__': UploadPart() ``` <h5 id="12.3">中止分片上传Object</h5> ``` u""" usage: command line input "python AbortMultipartUpload.py -bucket <BUCKET_NAME>" """ import sys import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] def AbortMultipartUpload(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) # 参数Key和UploadId都是调用初始化分片上传CreateMultipartUpload后,response中返回的 response = client.abort_multipart_upload( Bucket=BUCKET_NAME, Key="1576147508327932", UploadId="77065071-1ccc-11ea-9536-fa163e5dbb11" ) print(response) if __name__ == '__main__': AbortMultipartUpload() ``` <h5 id="12.4">获取分片上传列表</h5> ``` u""" usage: command line input "python ListMultipartUploads.py -bucket <BUCKET_NAME>" """ import sys import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] def ListMultipartUploads(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.list_multipart_uploads( Bucket=BUCKET_NAME ) print(response) if __name__ == '__main__': ListMultipartUploads() ``` <h5 id="12.5">提交分片上传Object</h5> ``` u""" usage: command line input "python CompleteMultipartUpload.py -bucket <BUCKET_NAME>" """ import sys import boto3 ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] def CompleteMultipartUpload(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) # 参数Key和UploadId要和UploadPart中保持一致,ETag参数是调用UploadPart之后在response中返回的 response = client.complete_multipart_upload( Bucket=BUCKET_NAME, Key="1576148709781474", MultipartUpload={ 'Parts': [ { 'ETag': '586f0dcc79e04546ca3b1f289f849d37', 'PartNumber': 1 }, ] }, UploadId="4324029f-1ccf-11ea-9536-fa163e5dbb11" ) print(response) if __name__ == '__main__': CompleteMultipartUpload() ``` <h4 id="13">下载 Object</h4> ``` u""" usage: command line input "python DownloadObject.py -bucket <BUCKET_NAME> -file <FILE_NAME>" 需要注意的是,-file 后面的参数是线上object的key名 要下载到本地,需要指定LOCAL_FILE_NAME (写清楚文件名即可,不用提前创建,会自动在当前路径创建) """ import boto3 import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" LOCAL_FILE_NAME = "b_local.txt" BUCKET_NAME = sys.argv[2] FILE_NAME = sys.argv[4] def DownloadObject(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) with open(LOCAL_FILE_NAME, "wb") as data: client.download_fileobj( Fileobj=data, Bucket=BUCKET_NAME, Key=FILE_NAME ) if __name__ == '__main__': DownloadObject() ``` <h4 id="14">删除 Object</h4> ``` u""" usage: command line input "python DeleteObject.py -bucket <BUCKET_NAME> -file <FILE_NAME>" 需要注意的是,-file 后面的参数是线上object的key名 """ import boto3 import sys ACCESS_KEY_ID = "" ACCESS_KEY_SECRET = "" REGION = "test" ENDPOINT = "http://test.xstore.qihoo.net" SERVICE_NAME = "s3" BUCKET_NAME = sys.argv[2] FILE_NAME = sys.argv[4] def DeleteObject(): client = boto3.client( service_name=SERVICE_NAME, region_name=REGION, endpoint_url=ENDPOINT, aws_access_key_id=ACCESS_KEY_ID, aws_secret_access_key=ACCESS_KEY_SECRET ) response = client.delete_object( Bucket=BUCKET_NAME, Key=FILE_NAME ) print(response) if __name__ == '__main__': DeleteObject() ```
即刻开始使用
只需完成注册与实名认证,即可体验我们的贴心服务
立即使用
请您联系我们
邮箱
g-zyun@360.cn
电话
4000052360
小安提醒您
试用小安,请确保该账户已通过智汇云实名认证
前往认证中心>>
1对1免费
咨询智汇云专属顾问
为您量身定制产品解决方案
您的姓名 :
手机号 :
公司名称(选填) :
相关产品 :
留言内容 :
需求描述
产品建议
其他
提交
登录后才可以留言哦
立即登录
去注册账号