S3平台详细使用步骤简介
步骤 2. 在S3服务器上创建存储段
def bucket = s3Service.getOrCreateBucket("bc50i")
不要被我这个简单的代码示例所蒙蔽。JetS3t 库的扩展性非常强。例如,您可以快速确定拥有多少存储段 —— 只需通过 listAllBuckets 调用请求一个S3 Service 实例即可。该方法返回一个 S3Bucket 实例数组。对于任何存储段实例,您可以询问它的名称和创建日期。更重要的是,您可以通过JetS3t 的 AccessControlList 类型控制与之相关的权限。例如,我可以获取 bc50i 存储段实例,并允许任何人可以公开读取和编写,如清单 3 所示:
步骤 3. 修改存储段的访问控制列表
def bucket.acl = AccessControlList.REST_CANNED_PUBLIC_READ_WRITE
当然,通过 API,您也可以随意删除存储段。Amazon甚至允许您指定创建存储段的地理位置。Amazon简化了存储实际数据的复杂性,但是您可以告诉Amazon要将存储段(及其内部所有的对象)放在美国或欧洲(当前可用选项)。
向存储段添加对象
使用JetS3t 的API创建S3对象就像操作存储段一样简单。JetS3t 库也很智能,可以负责处理与S3存储段内文件相关的内容类型。例如,我想向S3上传一段影片nerfwars2.mp4,以便用户能够在有限的时间内观看。创建一个S3对象与创建常见的 java.io.File 类型一样简单,并能将S3Object 类型与存储段关联,如清单 4 所示:
步骤 4. 创建一个S3对象
def s3obj = new S3Object(bucket, new File("/path/to/nerfwars2.mp4"))
使用文件和存储段初始化 S3Object 之后,要做的所有事情就是通过 putObject 方法上传,如清单 5 所示:
步骤 5. 上传影片
s3Service.putObject(bucket, s3obj)
使用清单 5 可以完成上传。现在影片位于Amazon服务器了,影片的键就是它的名称。当然,您可以根据需要重写该名称以调用其他对象。实际上,JetS3t API(以及 AmazonS3RESTful API)公开了许多信息,供您创建对象时使用。我们知道,您还可以提供访问控制列表。S3中的任何对象都可以保存API允许您创建的其他元数据。之后可以通过该元数据的S3API(以及派生的 JetS3t)查询任何对象。