深入解析S3服务:从基础概念到客户端实现
1. S3基础概念
1.1 存储桶(Buckets)
存储桶是S3服务中的重要概念,每个存储桶都有一个与之关联的名称。存储桶名称只能包含A - Z、a - z、0 - 9、下划线、句点和破折号,建议避免使用大写字母。每个S3用户最多可创建100个存储桶,且存储桶名称不能与其他用户冲突。可以将所有内容存于一个存储桶,也可根据项目或域名命名每个存储桶。需要注意的是,存储桶不能包含其他存储桶,只能包含对象。
1.2 对象(Objects)
对象由四部分组成:
- 对父存储桶的引用。
- 存储在该对象中的数据(S3称为“值”)。
- 名称(S3称为“键”)。
- 与对象关联的一组元数据键值对,主要是自定义元数据,也可能包含标准HTTP头Content - Type和Content - Disposition的值。
例如,若要在S3上托管O’Reilly网站,可创建名为“oreilly.com”的存储桶,并填充键为“”(空字符串)、“catalog”、“catalog/9780596529260”等的对象,这些对象对应于http://oreilly.com/、http://oreilly.com/catalog等URI,对象的值为O’Reilly网页的HTML内容,且这些S3对象的Content - Type元数据值应设置为text/html。
2. S3的面向对象设计
2.1 假设的Ruby库实现
若将S3实现为面向对象的代码库而非Web服务,会有S3Bucket和S3Object两个类。它们
超级会员免费看
订阅专栏 解锁全文
929

被折叠的 条评论
为什么被折叠?



