# ctyun-xstore-s3-demo **Repository Path**: lqlkxk/ctyun-xstore-s3-demo ## Basic Information - **Project Name**: ctyun-xstore-s3-demo - **Description**: 天翼云媒体存储对象存储 SDK 的使用例子,请按需取用。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://console.xstore.ctyun.cn/doc/store/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-11-03 - **Last Updated**: 2022-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 天翼云媒体存储AWS S3接口SDK demo ## JAVA版本 支持JDK 1.7+ ## 配置信息 配置信息在 src/main/java/com/ctyun/xstore/s3/Conf.java 中。 ## S3初始化 见代码:src/main/java/com/ctyun/xstore/s3/client/AmazonS3ClientBuilder.java ## STS环境配置 见代码:src/main/java/com/ctyun/xstore/s3/client/AmazonSTSClientBuilder.java ## 涵盖功能 + 创建bucket,见CreateBucket.java。含2个功能:创建时设置访问权限、创建时未设置访问权限(访问bucket会被拒绝) + 删除bucket,见DeleteBucket.java + 列出所有bucket,见ListBuckets.java + 设置Bucket的访问权限ACL,见SetBucketAcl.java + 设置Bucket的访问策略,见SetBucketPolicy.java + 获取Bucket的访问策略,见GetBucketPolicy.java + 删除Bucket的访问策略,见DeleteBucketPolicy.java + 设置bucket的请求跨域方案,见SetBucketCrossOrigin.java + 上传对象,见UploadObject.java。含2个功能:上传时设置访问权限、上传时未设置访问权限(访问对象会被拒绝) + 下载对象,见DownloadObject.java + 删除对象,见DeleteObject.java + 列出所有对象,见ListObjects.java + 设置对象的访问权限ACL,见SetObjectAcl.java + 上传对象url预签名,见GeneratePresignedPutUrl.java + 获取临时ak、sk、sessionToken。见StsDemoController.java + 根据临时ak、sk、sessionToken生成文件上传预签名地址。见StsDemoController.java + 前端支持文件断点上传。见:resources/static/upload-demo/upload.html * 注意:需要将 bucket 设置跨域,其中 `Allow-Headers` 以及 `Expose-Headers` 需要设置为 `*`。 * 后端 Controller:src/main/java/com/ctyun/xstore/s3/client/controller/S3DemoController.java * 前端 js 代码在:resources/static/upload-demo/js/fileUpload.js,注意:Demo 代码使用 es6 的一些语法以及 fetch API,如需要浏览器兼容,请按照该逻辑改造。 + 使用JavaScript SDK进行前端文件上传和查询。见:resources/static/s3-javascript-demo/html/s3.html ## 主要测试案例 ### 获取临时ak、sk、sessionToken,然后在前端执行文件上传操作 1. 请先确保bucket允许浏览器跨域访问。设置跨域访问方案代码见SetBucketCrossOrigin.java 2. 在AmazonSTSClientBuilder.java中配置END_POINT、BUCKET、ACCESS_KEY、SECRET_KEY、ARN 3. 访问页面:http://localhost:8080/xstore-s3-demo/s3-javascript-demo/html/s3.html ### 创建bucket 1. 以bucket名称:xstore-s3demo-bucket ,endPoint:https://xstore.ctyun.cn为例 2. 在创建bucket后,使用https://xstore-s3demo-bucket.xstore.ctyun.cn访问bucket ### 上传对象 1. 以bucket名称:xstore-s3demo-bucket ,endPoint:https://xstore.ctyun.cn,对象名称:test.mp4为例 2. 在上传对象后,使用https://xstore-s3demo-bucket.xstore.ctyun.cn/test.mp4访问对象 ## AWS的JAVA SDK官方参考文档 1. [参考文档](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html) 2. [参考代码](https://github.com/awsdocs/aws-doc-sdk-examples) ## AWS的JavaScript SDK官方参考文档 1. [JavaScriptSDK参考API](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html) 2. [JavaScriptSDK参考文档](https://amazonaws-china.com/cn/sdk-for-browser)