简单易用,API调配全掌握

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
日志服务 SLS,月写入数据量 50GB 1个月
简介: OSS 支持 RESTFUL API 形式调用,基本上服务端控制台上的功能配置,都可以通过 API 完成配置操作。也可以通过 OpenAPI 对文件进行集群的管理,结果用户访问控制台(RAM policy)加强客户的安全屏蔽,目前支持的 API 如下

开发者 API 调用

OSS 支持 RESTFUL API 形式调用,基本上服务端控制台上的功能配置,都可以通过 API 完成配置操作。也可以通过 OpenAPI 对文件进行集群的管理,结果用户访问控制台(RAM policy)加强客户的安全屏蔽,目前支持的 API 如下;

GetService (ListBuckets)

对服务地址做Get请求可以返回请求者拥有的所有存储空间(Bucket),其中正斜线(/)表示根目录。
PutBucket

PutBucket接口用于创建存储空间(Bucket)
DeleteBucket

DeleteBucket用于删除某个存储空间(Bucket)。
GetBucket (ListObjects)

GetBucket接口用于列举存储空间(Bucket)中所有文件(Object)的信息。
GetBucketInfo

GetBucketInfo接口用于查看存储空间(Bucket)的相关信息。只有Bucket的拥有者才能查看Bucket的信息。
GetBucketLocation

GetBucketLocation接口用于查看存储空间(Bucket)的位置信息。只有Bucket的拥有者才能查看Bucket的位置信息。
PutBucketACL

PutBucketACL接口用于修改存储空间(Bucket)的访问权限。只有该Bucket的创建者有权限执行此操作。
GetBucketAcl

GetBucketAcl接口用于获取某个存储空间(Bucket)的访问权限(ACL)。只有Bucket的拥有者才能获取Bucket的访问权限。
PutBucketLifecycle

PutBucketLifecycle接口用于设置存储空间(Bucket)的生命周期规则。生命周期规则开启后,OSS将按照配置规则,定期自动删除与规则相匹配的文件(Object)。只有Bucket的拥有者才能发起此请求。
GetBucketLifecycle

GetBucketLifecycle接口用于查看存储空间(Bucket)的生命周期规则(Lifecycle)。只有Bucket的拥有者才有权限查看Bucket的生命周期规则。
DeleteBucketLifecycle

DeleteBucketLifecycle接口用于删除指定存储空间(Bucket)的生命周期规则。使用DeleteBucketLifecycle接口删除指定Bucket所有的生命周期规则后,该Bucket中的文件(Object)不会被自动删除。只有Bucket的拥有者才能删除该Bucket的生命周期规则。
PutBucketVersioning

PutBucketVersioning用于设置指定 Bucket 的版本控制状态。只有 Bucket 所有者有权限执行此操作。
GetBucketVersioning

GetBucketVersioning接口用于获取指定 Bucket 的版本控制状态。
GetBucketVersions(ListObjectVersions)

GetBucketVersions接口用于列出 Bucket 中包括删除标记(Delete Marker)在内的所有 Object 的版本信息。
PutBucketPolicy

PutBucketPolicy接口用于为指定的存储空间(Bucket)设置授权策略(Policy)。
GetBucketPolicy

GetBucketPolicy用于获取指定存储空间(Bucket)的权限策略(Policy)。
DeleteBucketPolicy

DeleteBucketPolicy用于删除指定存储空间(Bucket)的权限策略(Policy)。
GetBucketLogging

GetBucketLogging接口用于查看存储空间(Bucket)的访问日志配置。只有Bucket的拥有者才能查看Bucket的访问日志配置。
DeleteBucketLogging

DeleteBucketLogging用于关闭存储空间(Bucket)的访问日志记录功能。只有Bucket的拥有者才有权限关闭Bucket访问日志记录功能。
PutBucketLogging

PutBucketLogging接口用于为存储空间(Bucket)开启访问日志记录功能。访问日志记录功能开启后,OSS将自动记录访问Bucket请求的详细信息,并以小时为单位将访问日志作为一个文件(Object)写入指定的Bucket。
PutBucketWebsite

PutBucketWebsite接口用于将一个bucket设置成静态网站托管模式,以及设置跳转规则。
GetBucketWebsite

GetBucketWebsite接口用于查看存储空间(Bucket)的静态网站托管状态以及跳转规则。
DeleteBucketWebsite

DeleteBucketWebsite接口用于关闭存储空间(Bucket)的静态网站托管模式以及跳转规则。只有Bucket的拥有者才能关闭Bucket的静态网站托管模式。
GetBucketReferer

GetBucketReferer接口用于查看存储空间(Bucket)的防盗链(Referer)相关配置。
PutBucketReferer

PutBucketReferer接口用于设置存储空间(Bucket)的防盗链(Referer)。您可以使用此接口设置Referer的访问白名单以及是否允许Referer字段为空。
PutBucketReferer

PutBucketTags接口用来给某个Bucket添加或修改标签。
GetBucketTags

GetBucketTags用于获取存储空间(Bucket)的标签信息。
DeleteBucketTags

DeleteBucketTags接口用于删除存储空间(Bucket)标签。
PutBucketEncryption

PutBucketEncryption接口用于配置Bucket的加密规则。
GetBucketEncryption

GetBucketEncryption接口用于获取Bucket加密规则。
DeleteBucketEncryption

DeleteBucketEncryption接口用于删除Bucket加密规则。
PutBucketRequestPayment

PutBucketRequestPayment接口用于设置请求者付费模式。
GetBucketRequestPayment

GetBucketRequestPayment接口用于获取请求者付费模式配置信息。
PutBucketCORS

PutBucketcors接口用于为指定的存储空间(Bucket)设定一个跨域资源共享(CORS)规则。如果Bucket已有CORS规则,使用此接口会覆盖原有规则。Bucket默认不开启CORS功能,所有跨域请求的Origin都不被允许。
GetBucketCORS

GetBucketCORS接口用于获取指定存储空间(Bucket)当前的跨域资源共享(CORS)规则。
DeleteBucketCORS

DeleteBucketcors用于关闭指定存储空间(Bucket)对应的跨域资源共享(CORS)功能并清空所有规则。
PutObject

上传文件到 OSS
GetObject

下载 OSS 文件
CopyObject

CopyObject接口用于在存储空间(Bucket )内或同地域的Bucket之间拷贝文件(Object)。使用CopyObject接口发送一个Put请求给OSS,OSS会自动判断为拷贝操作,并直接在服务器端执行该操作。
AppendObject

AppendObject接口用于以追加写的方式上传文件(Object)。通过AppendObject操作创建的Object类型为Appendable Object,而通过PutObject上传的Object是Normal Object。
DeleteObject

DeleteObject用于删除某个文件(Object)。使用DeleteObject需要对该Object有写权限。
DeleteMultipleObjects

DeleteMultipleObjects接口用于删除同一个存储空间(Bucket)中的多个文件(Object)。
HeadObject

HeadObject接口用于获取某个文件(Object)的元信息。使用此接口不会返回文件内容。
GetObjectMeta

GetObjectMeta接口用于获取一个文件(Object)的元数据信息,包括该Object的ETag、Size、LastModified信息,并且不返回该Object的内容。
PostObject

PostObject使用HTML表单上传Object到指定Bucket。
Callback

用户只需要在发送给 OSS 的请求中携带相应的 Callback 参数,即能实现回调。本文详细介绍Callback的实现原理。
RestoreObject

RestoreObject接口用于解冻归档类型(Archive)的文件(Object)。
SelectObject

SelectObject用于对目标文件执行SQL语句,返回执行结果。
InitiateMultipartUpload

使用Multipart Upload模式传输数据前,必须先调用该接口来通知OSS初始化一个Multipart Upload事件。
UploadPart

初始化一个MultipartUpload之后,可以根据指定的Object名和Upload ID来分块(Part)上传数据。
UploadPartCopy

UploadPartCopy通过从一个已存在的Object中拷贝数据来上传一个Part。
CompleteMultipartUpload

在将所有数据Part都上传完成后,必须调用CompleteMultipartUpload接口来完成整个文件的MultipartUpload。
AbortMultipartUpload

AbortMultipartUpload接口用于终止MultipartUpload事件。您需要提供MultipartUpload事件相应的Upload ID。
ListMultipartUploads

ListMultipartUploads用来列举所有执行中的Multipart Upload事件,即已经初始化但还未Complete或者Abort的Multipart Upload事件。
ListParts

ListParts接口用于列举指定Upload ID所属的所有已经上传成功Part。
PutObjectACL

PutObjectACL接口用于修改文件(Object)的访问权限(ACL)。此操作只有Bucket Owner有权限执行,且需对Object有读写权限。
GetObjectACL

GetObjectACL接口用来获取某个存储空间(Bucket)下的某个文件(Object)的访问权限(ACL)。
GetSymlink

GetSymlink接口用于获取软链接。此操作需要您对该软链接有读权限。
PutSymlink

PutSymlink接口用于为OSS的TargetObject创建软链接(Symlink),您可以通过该软链接访问TargetObject。
PutObjectTagging

您可以通过PutObjectTagging接口设置或更新对象的标签(Object Tagging)。
GetObjectTagging

您可以通过GetObjectTagging接口获取对象的标签信息。
DeleteObjectTagging

您可以通过DeleteObjectTagging删除指定对象的标签。
PutLiveChannel

通过RTMP协议上传音视频数据前,必须先调用该接口创建一个LiveChannel。调用PutLiveChannel接口会返回RTMP推流地址,以及对应的播放地址。
ListLiveChannel

ListLiveChannel接口用于列举指定的LiveChannel。
DeleteLiveChannel

DeleteLiveChannel接口用于删除指定的LiveChannel。
PutLiveChannelStatus

LiveChannel分为enabled和disabled两种状态。您可以使用PutLiveChannelStatus接口在两种状态之间进行切换。
GetLiveChannelInfo

GetLiveChannelInfo接口用于获取指定LiveChannel的配置信息。
GetLiveChannelStat

GetLiveChannelStat接口用于获取指定LiveChannel的推流状态信息。
GetLiveChannelHistory

GetLiveChannelHistory接口用于获取指定LiveChannel的推流记录。使用GetLiveChannelHistory接口最多会返回指定LiveChannel最近的10次推流记录。
PostVodPlaylist

PostVodPlaylist接口用于为指定的LiveChannel生成一个点播用的播放列表。OSS会查询指定时间范围内由该LiveChannel推流生成的ts文件,并将其拼装为一个m3u8播放列表。
GetVodPlaylist

GetVodPlaylist接口用于查看指定LiveChannel在指定时间段内推流生成的播放列表。

开发者 SDK 调用

如果用户端不想自己计算鉴权,直接利用 SDK 封装的 API 工具集,免去鉴权的复杂计算
支持 JAVA、 python、PHP 、GO 、C 、C# 、C++、Ruby 等

热点存储优化

OSS 后端采用的不是 hash key 的方式存储,而是采用了 LSM Tree 结构,系统性能是靠分裂分区扩展的。这种场景要求用户在存储 OSS 内容时,在文件命名上要避开热点前缀。用户如果前缀带了类似日期信息热点前缀,可能导致在切换月份的时候从N个分区跳变到压力集中到一个分区;

细节约定

OSS按照文件名UTF-8编码的顺序对用户数据进行自动分区,从而能够处理海量文件,以及承载高速率的客户请求。不过,如果您在上传大量文件时,在命名上使用了顺序前缀(如时间戳或字母顺序),可能会导致大量文件索引集中存储于某个特定分区。这样,当您的请求速率超过2000次/秒时(下载、上传、删除、拷贝、获取元数据信息等操作算1次操作,批量删除N个文件、列举N个文件等操作算N次操作),会带来如下后果:

该分区成为热点分区,导致分区的I/O能力被耗尽,或被系统自动限制请求速率。
热点分区的存在会触发系统进行持续的分区数据再均衡,这个过程可能会延长请求处理时间。
以上情况会降低OSS的水平扩展效果,导致客户的请求速率受限。
要解决这个问题,就要消除文件名中的顺序前缀。您可以在文件名前缀中引入某种随机性,这样文件索引(以及 I/O 负载)就会均匀分布在多个分区。

下面提供了几个将顺序前缀改为随机性前缀的方法示例。

sample-bucket-01/2017-11-11/customer-1/file1
sample-bucket-01/2017-11-11/customer-2/file2
sample-bucket-01/2017-11-11/customer-3/file3
...
sample-bucket-01/2017-11-12/customer-2/file4
sample-bucket-01/2017-11-12/customer-5/file5
sample-bucket-01/2017-11-12/customer-7/file6
...

针对这种情况,可以对客户ID计算哈希,即MD5(customer-id) ,并取若干字符的哈希前缀作为文件名的前缀。假如取4个字符的哈希前缀,结果如下:

sample-bucket-01/2c99/2017-11-11/customer-1/file1
sample-bucket-01/7a01/2017-11-11/customer-2/file2
sample-bucket-01/1dbd/2017-11-11/customer-3/file3
...
sample-bucket-01/7a01/2017-11-12/customer-2/file4
sample-bucket-01/b1fc/2017-11-12/customer-5/file5
sample-bucket-01/2bb7/2017-11-12/customer-7/file6
...

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
5天前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
11天前
|
JSON API 数据格式
微店商品列表接口(微店 API 系列)
微店商品列表接口是微店API系列的一部分,帮助开发者获取店铺中的商品信息。首先需注册微店开发者账号并完成实名认证,选择合适的开发工具如PyCharm或VS Code,并确保熟悉HTTP协议和JSON格式。该接口支持GET/POST请求,主要参数包括店铺ID、页码、每页数量和商品状态等。响应数据为JSON格式,包含商品详细信息及状态码。Python示例代码展示了如何调用此接口。应用场景包括商品管理系统集成、数据分析、多平台数据同步及商品展示推广。
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
24 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
2天前
|
监控 供应链 搜索推荐
亚马逊商品详情接口(亚马逊 API 系列)
亚马逊作为全球最大的电商平台之一,提供了丰富的商品资源。开发者和电商从业者可通过亚马逊商品详情接口获取商品的描述、价格、评论、排名等数据,对市场分析、竞品研究、价格监控及业务优化具有重要价值。接口基于MWS服务,支持HTTP/HTTPS协议,需注册并获得API权限。Python示例展示了如何使用mws库调用接口获取商品详情。应用场景包括价格监控、市场调研、智能选品、用户推荐和库存管理等,助力电商运营和决策。
45 23
|
3天前
|
JSON 数据挖掘 API
lazada商品详情接口 (lazada API系列)
Lazada 是东南亚知名电商平台,提供海量商品资源。通过其商品详情接口,开发者和商家可获取商品标题、价格、库存、描述、图片、用户评价等详细信息,助力市场竞争分析、商品优化及库存管理。接口采用 HTTP GET 请求,返回 JSON 格式的响应数据,支持 Python 等语言调用。应用场景包括竞品分析、价格趋势研究、用户评价分析及电商应用开发,为企业决策和用户体验提升提供有力支持。
49 21
|
4天前
|
数据采集 JSON 监控
速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)
以下是使用 Python 调用速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)的代码示例。该示例包含准备基础参数、生成签名、发送请求和处理响应等关键步骤,并附有详细注释说明。代码展示了如何通过公共参数和业务参数构建请求,使用 HMAC-SHA256 加密生成签名,确保请求的安全性。最后,解析 JSON 响应并输出商品信息。此接口适用于商品监控、数据采集与分析及商品推荐等场景。注意需通过 OAuth2.0 获取 `access_token`,并根据官方文档调整参数和频率限制。
|
5天前
|
存储 搜索推荐 API
淘宝拍立淘按图搜索API接口系列概述
淘宝拍立淘按图搜索API接口允许用户通过上传图片或拍摄实物来搜索相似或相同的商品。这一功能主要依赖于图像识别技术,系统会对上传的图片进行分析和处理,提取出商品的特征信息,并在淘宝的商品数据库中进行匹配搜索,最终返回与上传图片相似或相同的商品列表。
|
4天前
|
JSON 监控 API
速卖通商品列表接口(速卖通API系列)
速卖通提供商品列表API,开发者可通过关键词、类目、价格范围等条件获取商品标题、价格、销量等基本信息。使用前需注册开发者账号、创建应用并授权获取access_token。Python示例代码展示了如何调用接口,返回JSON格式数据,包含商品列表、总数、页码等信息。应用场景包括商品监控、数据分析和个性化推荐。注意API会更新,请参考官方文档。
|
5天前
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
27 5
|
10天前
|
JSON 监控 API
唯品会商品详情接口(唯品会 API 系列)
唯品会商品详情接口助力电商发展,提供商品名称、价格、规格等详细信息,支持HTTP GET/POST请求,响应为JSON格式。开发者可通过API Key和商品ID获取数据,应用于电商数据分析、竞品调研、应用开发及价格监控,提升业务效率与竞争力。示例代码展示Python调用方法,方便快捷。

热门文章

最新文章