亚马逊简单云存储服务(AWS S3)

来源:互联网 发布:淘宝乳胶床垫 编辑:程序博客网 时间:2024/05/16 05:23

简介(官方语言)

    AWS(Amazon Web Services):以 Web 服务的形式向企业提供 IT 基础设施服务,现在通常称为云计算。云计算的主要优势之一是能够以根据业务发展来扩展的  较低可变成本来替代前期资本基础设施费用。利用云,企业无需再提前数周或数月来计划和采购服务器及其他 IT 基础设施,而是可以在几分钟内即时运行成百    上千台服务器并更快达成结果。    Amazon Simple Storage Service (Amazon S3): 一种对象存储,它具有简单的 Web 服务接口,可用于在 Web 上的任何位置存储和检索任意数量的数据。它能够提供 99.999999999% 的持久性,并且可以在全球大规模传递数万亿对象。客户使用 S3 作为云原生应用程序的主要存储;作为分析的批量存储    库或“数据湖”;作为备份和恢复以及灾难恢复的目标;并将其与无服务器计算配合使用。    使用 Amazon 的云数据迁移选项,客户可以轻松地将大量数据移入或移出 Amazon S3。数据在存储到 S3 中之后,会自动采用成本更低、存储期限更长的云存储类 (如 S3 Standard – Infrequent Access 和 Amazon Glacier) 进行存档。

1.接口,类,方法介绍

1.1 interface AWSCredentials

method detail:String getAWSAccessKeyId();//返回凭证对象的AWS访问秘钥ID(账目)String getAWSSecretKey();//返回此凭证对象的AWS访问秘钥(密码)

1.2 Class BasicAWSCredentials extends Object implements AWSCredentials

Constructor Summary:BasicAWSCredentials(String accessKey, String secretKey)//构造新的对象,填写分配的 账户密码method detail:String getAWSAccessKeyId();//返回凭证对象的AWS访问秘钥ID(账目)String getAWSSecretKey();//返回此凭证对象的AWS访问秘钥(密码)

1.3 Class ClientConfiguration extends Object

Method Summary:public void setProtocol(Protocol protocol)// 设置连接Amazon web serivces 使用的协议(HTTP或HTTPS)public void setMaxConnections(int maxConnections)//允许最大http连接数public void setProxyHost(String  proxyHost)//设置客户端将连接的可选代理主机public void setRetryPolicy(RetryPolicy  retryPolicy)//在失败请求时设置重试策略public void setMaxErrorRetry(int maxErrorRetry)//置可重试请求失败的最大重试次数public void setSocketTimeout(int socketTimeout)//设置在连接超时并关闭之前,要在已建立的打开连接上传输的数据等待的时间public void setUseGzip(boolean use)//设置是否应该使用gzip压缩public void setSignerOverride(String  value)//设置用于签署此客户端请求的签名算法的名称。如果未设置或显式设置为null,客户端将根据服务和区域的支持的签名算法的配置文件选择使用的签名算法。public void setCacheResponseMetadata(boolean ShouldCache)//设置是否缓存响应元数据。public void setResponseMetadataCacheSize(int responseMetadataCacheSize)// 设置响应元数据缓存大小。默认设置为 50

1.4 public class AmazonS3Client extends AmazonWebServiceClient implements AmazonS3

Constructors:AmazonS3Client(AWSCredentials awsCredentials, ClientConfiguration clientConfiguration)Method Summary:public void setEndpoint(String  endpoint)//覆盖此客户端的默认端点。public void setS3ClientOptions(S3ClientOptions  clientOptions)//覆盖此客户端的默认S3客户端选项。如果在S3客户端选项中指定了端点,则将端点设置为s3加速public  S3Object  getObject(GetObjectRequest  getObjectRequest)//在指定的bucket和key下获取存储在Amazon S3中的对象public  CopyObjectResult  copyObject(String  sourceBucketName,String  sourceKey, String  destinationBucketName,String destinationKey)//默认情况下,除了服务器端加密,存储类和 网站重定向位置之外,源对象的所有对象元数据 都将复制到新的目标对象,除非CopyObjectRequest提供了指定的新对象元数据public  PutObjectResult  putObject(PutObjectRequest  putObjectRequest)//将新对象上传到指定的Amazon S3存储区。

1.5 public class GeneratePresignedUrlRequest extends AmazonWebServiceRequest implements SSECustomerKeyProvider,Serializable

Constructors:GeneratePresignedUrlRequest(String bucketName, String key)//创建一个新的请求,用于生成一个预先签名的URL,该URL可以用作HTTP GET请求的一部分,用于访问在指定的桶中指定的密钥下存储的Amazon S3对象。Method Summary:public void setExpiration(Date  expiration)//设置到期日期,此时新的预先签名的URL将不再被Amazon S3接受。如果未指定,将提供默认值。public void setMethod(HttpMethod method)//设置要在此请求中使用的HTTP方法(GET,PUT,DELETE,HEAD)

2.资源引入

    <dependency>        <groupId>com.amazonaws</groupId>        <artifactId>aws-java-sdk-s3</artifactId>        <version>1.11.78</version>    </dependency>

3.项目应用

3.1 客户端连接(配置客户端信息)

    AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);    ClientConfiguration s3configuration = new ClientConfiguration();    s3configuration.setProtocol(Protocol.HTTP);    s3configuration.setSignerOverride(SIGNER_TYPE);    AmazonS3 client = new AmazonS3Client(credentials, s3configuration);    client.setEndpoint(endpoint);    client.setS3ClientOptions(S3ClientOptions.builder().setPathStyleAccess(true).build());

3.2 上传

    client.putObject(targetBucker, key, file);

3.3 下载

    client.copyObject(sourceBucketName, sourceKey, destinationBucketName, destinationKey);

4 支持

amazon 官网
AWS SDK for Java API

原创粉丝点击