ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【AWS系列】第八讲:AWS Serverless之S3 [打印本页]

作者: 伤心客    时间: 2024-6-15 01:14
标题: 【AWS系列】第八讲:AWS Serverless之S3


目次
序言
1.基础介绍
1.1 概念介绍
1.2 原理介绍
1.3 应用场景
1.3.1 构建数据湖
1.3.2 备份和还原关键数据
1.3.3 以最低成本存档数据
1.3.4 运行云原生应用步伐
1.4 S3 的功能
1.4.1 存储类
1.4.2 存储管理
1.4.3 访问管理
2 利用方法
2.1 创建存储桶
​2.2 配置 CORS 规则
3 投票



序言

   三言两语,不如细心探索。
  盼望读完此文,能资助读者对AWS S3 有一个初步的相识
    文章标志颜色阐明:
  
  1.基础介绍

1.1 概念介绍

   Amazon Simple Storage Service (Amazon S3) 是一种对象存储服务
    特点:
  
  其具有高成本效益的存储类和易于利用的管理功能
  可以优化成本、组织数据并配置精致调解过的访问控制,从而满意特定的业务、组织和合规性要求。
  1.2 原理介绍



   Amazon S3 是一种数据元存储服务,可将数据以对象形式存储在存储桶中。对象指的是一个文件和形貌该文件的任何元数据。存储桶是对象的容器。
  要将数据存储在 Amazon S3 中,
    每个对象都带有密钥(或键名称),它是存储桶中对象的唯一标识符。
  1.3 应用场景

   S3除了用于对象存储,还可以做一下场景:
  
  1.3.1 构建数据湖

   运行大数据分析、人工智能 (AI)、机器学习 (ML) 和高性能计算 (HPC) 应用步伐来获得数据见解。
    数据湖基础:Amazon S3、AWS Lake Formation、Amazon Athena、Amazon EMR 和 AWS Glue
  利用在 Amazon S3 上构建的数据湖,可以利用原生 AWS 服务运行大数据分析、人工智能(AI)、机器学习、高性能计算(HPC)和媒体数据处理应用步伐,以便从非结构化数据会合获得洞察信息。
  与 AWS Lake Formation 和 AWS Glue 结合利用时,可以通过端到端数据集成和会合的、类似数据库的权限和管理来轻松简化数据湖的创建和管理。Glue、Amazon EMR 和 Amazon Athena 等 AWS 分析解决方案可让您轻松直接查询数据湖。
  
  1.3.2 备份和还原关键数据

   通过 S3 强大的复制功能到达恢复时间目的 (RTO)、恢复点目的 (RPO) 以及符合合规要求。
    优势:
  
  1.3.3 以最低成本存档数据

   将数据存档移动到 Amazon S3 Glacier 存储类以降低成本、消除运营复杂性并获得新见解。
    优势:
  
  1.3.4 运行云原生应用步伐

   构建快速、功能强大的移动和基于 Web 的云原生应用步伐,可在高度可用的配置中自动扩展。
    云原生应用步伐实现功能的速度更快,由于微服务在预备就绪时提供其功能,而无需等待单片应用步伐完成。Amazon S3为IT团队交付的内部员工应用步伐和产品团队交付的外部客户应用步伐提供即时、弹性的容量。
  1.4 S3 的功能

   功能分为以下几个模块
  存储类
  1.4.1 存储类

   Amazon S3 提供一系列适合不同利用案例的存储类。
  利用方法:
  频繁访问存储在:
  
  不经常访问,存储在:
  
  成本归档,存储在:
  
  不停变化或未知访问模式的数据:
  
  这四个访问层包括两个低延迟访问层(针对频繁和不频繁访问进行了优化),以及两个为异步访问很少访问的数据而计划的 opt-in archive 访问层。
  1.4.2 存储管理

   Amazon S3 具有存储管理功能,可以利用这些功能来管理成本、满意法规要求、减少延迟并保存数据的多个不同副本以满意合规性要求。
   
  1.4.3 访问管理

   Amazon S3 提供了用于审核和管理对存储桶和数据元的访问的功能。默认情况下,S3 存储桶和对象都是私有的。
  用户只能访问自己创建的 S3 资源。
  假如需要授予支持特定利用案例的细粒度资源权限或审核 Amazon S3 资源的权限,可以利用以下功能。
   
  2 利用方法

2.1 创建存储桶

   先找到S3
  

    进入S3控制台,点击创建存储桶
  

   根据业务,设置不同的参数 然后点击创建,即可创建一个简单的存储桶
   

 2.2 配置 CORS 规则


    以下代码示例显示如何向 S3 桶添加跨源资源共享 (CORS) 规则。示例为Java
  其他的学习。可以查阅github
  aws s3 examplea
  1.     public static void deleteBucketCorsInformation(S3Client s3, String bucketName, String accountId) {
  2.         try {
  3.             DeleteBucketCorsRequest bucketCorsRequest = DeleteBucketCorsRequest.builder()
  4.                 .bucket(bucketName)
  5.                 .expectedBucketOwner(accountId)
  6.                 .build();
  7.             s3.deleteBucketCors(bucketCorsRequest) ;
  8.         } catch (S3Exception e) {
  9.             System.err.println(e.awsErrorDetails().errorMessage());
  10.             System.exit(1);
  11.         }
  12.     }
  13.     public static void getBucketCorsInformation(S3Client s3, String bucketName, String accountId) {
  14.         try {
  15.             GetBucketCorsRequest bucketCorsRequest = GetBucketCorsRequest.builder()
  16.                 .bucket(bucketName)
  17.                 .expectedBucketOwner(accountId)
  18.                 .build();
  19.             GetBucketCorsResponse corsResponse = s3.getBucketCors(bucketCorsRequest);
  20.             List<CORSRule> corsRules = corsResponse.corsRules();
  21.             for (CORSRule rule: corsRules) {
  22.                 System.out.println("allowOrigins: "+rule.allowedOrigins());
  23.                 System.out.println("AllowedMethod: "+rule.allowedMethods());
  24.             }
  25.         } catch (S3Exception e) {
  26.             System.err.println(e.awsErrorDetails().errorMessage());
  27.             System.exit(1);
  28.         }
  29.     }
  30.     public static void setCorsInformation(S3Client s3, String bucketName, String accountId) {
  31.         List<String> allowMethods = new ArrayList<>();
  32.         allowMethods.add("PUT");
  33.         allowMethods.add("POST");
  34.         allowMethods.add("DELETE");
  35.         List<String> allowOrigins = new ArrayList<>();
  36.         allowOrigins.add("http://example.com");
  37.         try {
  38.             // Define CORS rules.
  39.             CORSRule corsRule = CORSRule.builder()
  40.                 .allowedMethods(allowMethods)
  41.                 .allowedOrigins(allowOrigins)
  42.                 .build();
  43.             List<CORSRule> corsRules = new ArrayList<>();
  44.             corsRules.add(corsRule);
  45.             CORSConfiguration configuration = CORSConfiguration.builder()
  46.                 .corsRules(corsRules)
  47.                 .build();
  48.             PutBucketCorsRequest putBucketCorsRequest = PutBucketCorsRequest.builder()
  49.                 .bucket(bucketName)
  50.                 .corsConfiguration(configuration)
  51.                 .expectedBucketOwner(accountId)
  52.                 .build();
  53.             s3.putBucketCors(putBucketCorsRequest);
  54.         } catch (S3Exception e) {
  55.             System.err.println(e.awsErrorDetails().errorMessage());
  56.             System.exit(1);
  57.         }
  58.     }
复制代码

3 投票







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4