【OSS】从AWS S3上的应用无缝切换至OSS

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: OSS提供了S3 API的兼容性,可以将您的数据从AWS S3无缝迁移至阿里云OSS。

注意事项

  • 使用限制由于OSS兼容S3协议,因此您可以通过S3 SDK进行创建Bucket、上传Object等相关操作。执行相关操作过程中其带宽、QPS等限制遵循OSS性能指标,详情请参见使用限制
  • 客户端配置从AWS S3迁移到OSS后,您仍然可以使用S3 API访问OSS,仅需要对S3的客户端应用进行如下改动:
  1. 获取阿里云账号或RAM用户的AccessKey ID和AccessKey Secret,并在您使用的客户端和SDK中配置您申请的AccessKey ID与AccessKey Secret。
  2. 设置客户端连接的Endpoint为OSS Endpoint。OSS Endpoint列表请参见访问域名和数据中心


迁移教程

您可以使用阿里云在线迁移服务将AWS S3 数据轻松迁移至阿里云对象存储OSS。详情请参见AWS S3迁移教程


迁移后通过S3 API访问OSS

从S3迁移到OSS后,您使用S3 API访问OSS时,需要注意以下几点:

  • Path style和Virtual hosted style

Virtual hosted style是指将Bucket置于Host Header的访问方式。基于安全考虑,OSS仅支持virtual hosted访问方式。所以在S3迁移至OSS后,客户端应用需要进行相应设置。部分S3工具默认使用Path style,也需要进行相应配置,否则可能导致OSS报错,并禁止访问。

  • ACL权限定义OSS对ACL权限的定义与S3不完全一致,迁移后如有需要,可对权限进行相应调整。二者的主要区别可参考下表:


级别 AWS S3权限 AWS S3 阿里云OSS
Bucket READ 拥有Bucket的list权限 对于Bucket下的所有Object,如果某Object没有设置Object权限,则该Object可读。
WRITE Bucket下的Object可写入或覆盖
  • 对于Bucket下不存在的Object,可写入。
  • 对于Bucket下存在的Object,如果该Object没有设置Object权限,则该Object可被覆盖。
  • 可以初始化分片上传(InitiateMultipartUpload)。
READ_ACP 读取Bucket ACL 读取Bucket ACL,仅Bucket owner和授权子账号拥有此权限。
WRITE_ACP 设置Bucket ACL 设置Bucket ACL,仅Bucket owner和授权子账号拥有此权限。
Object READ Object可读 Object可读。
WRITE N/A Object可以被覆盖。
READ_ACP 读取Object ACL 读取Object ACL,仅Bucket owner和授权RAM用户拥有此权限。
WRITE_ACP 设置Object ACL 设置Object ACL,仅Bucket owner和授权RAM用户拥有此权限。



注意 OSS仅支持S3中的私有、公共读和公共读写三种ACL模式。


  • 存储类型

OSS支持标准(Standard)、低频访问(IA)和归档存储(Archive)三种存储类型,分别对应AWS S3中的STANDARD、STANDARD_IA和GLACIER。您可以根据需要转换OSS Object的存储类型。
归档存储类型的Object在读取之前,要先使用Restore请求进行解冻操作。与S3不同,OSS会忽略S3 API中的解冻天数设置,解冻状态默认持续1天,用户可以延长到最多7天,之后,Object又回到初始时的冷冻状态。

  • ETag
  • 对于PUT方式上传的Object,OSS Object的ETag与AWS S3在大小写上有区别。OSS为大写,而S3为小写。如果客户端有关于ETag的校验,请忽略大小写。
  • 对于分片上传的Object,OSS的ETag计算方式与S3不同。


兼容的S3 API

以下为OSS对 S3 Bucket、Object以及Multipart操作兼容的API列表。

操作类型 API
Bucket操作
  • PutBucket
  • DeleteBucket
  • GetBucket
  • GetBucketACL
  • GetBucketLifecycle
  • GetBucketLocation
  • GetBucketLogging
  • HeadBucket
  • PutBucketACL
  • PutBucketLifecycle
  • PutBucketLogging
Object操作
  • DeleteObject
  • DeleteObjects
  • GetObject
  • GetObjectACL
  • HeadObject
  • PostObject
  • PutObject
  • PutObjectCopy
  • PutObjectACL
Multipart操作
  • InitiateMultipartUpload
  • AbortMultipartUpload
  • CompleteMultipartUpload
  • ListParts
  • UploadPart
  • UploadPartCopy
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
7月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之生成的图片的oss地址配成自定义的域名如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
存储 对象存储
使用Ceph对象存储的Amazon S3接口(基于nautilus版本)
使用Ceph对象存储的Amazon S3接口(基于nautilus版本)
566 0
|
3月前
|
Java 对象存储 开发者
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
故障隔离与容错处理:Hystrix在Spring Cloud和Netflix OSS中的应用
58 3
|
5月前
|
前端开发 对象存储
oss的断点续传在react中的应用
使用阿里云OSS的`multipartUpload`可自动管理文件切片与断点续传吗?测试时,上传一半中断(如刷新页面或重启浏览器),再续应从断点处继续。
96 10
|
6月前
|
运维 Serverless 应用服务中间件
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
Serverless 应用引擎产品使用合集之关于OSS映射目录的大小限制,如何可以跳过
|
7月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56606 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
6月前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
运维 Java Serverless
Serverless 应用引擎产品使用合集之是否提供工具来给OSS配置HTTPS证书
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
6月前
|
存储 运维 Serverless
Serverless 应用引擎产品使用合集之如何访问相同地域的OSS
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
运维 Java Serverless
Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
109 1