最近在用aws的s3做云存储,把文件上传上去,在数据库中记录对应的url,下面是示例代码:
public static String uploadToS3(File tempFile, String remoteFileName) throws IOException { PropertiesUtil propertiesUtil = new PropertiesUtil("s3.properties"); //首先创建一个s3的客户端操作对象(需要amazon提供的密钥) AmazonS3 s3 = new AmazonS3Client( new BasicAWSCredentials(propertiesUtil.getKeyValue(Consts.S3_ACCESS_KEY), propertiesUtil.getKeyValue(Consts.S3_SCERET_KEY))); Region usWest2 = Region.getRegion(Regions.US_WEST_2); s3.setRegion(usWest2); //设置bucket,key String bucketName = Consts.S3_BUCKET_NAME; String key = UUID.randomUUID() + ".apk"; try { //验证名称为bucketName的bucket是否存在,不存在则创建 if (!checkBucketExists(s3, bucketName)) { s3.createBucket(bucketName); } //上传文件 s3.putObject(new PutObjectRequest(bucketName, key, tempFile)); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); //获取一个request GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest( bucketName, key); Date expirationDate = null; try { expirationDate = new SimpleDateFormat("yyyy-MM-dd").parse("2020-12-31"); } catch (Exception e) { e.printStackTrace(); } //设置过期时间 urlRequest.setExpiration(expirationDate); //生成公用的url URL url = s3.generatePresignedUrl(urlRequest); System.out.println("=========URL=================" + url + "============URL============="); if (url == null) { throw new OperateFailureException("can't get s3 file url!"); } return url.toString(); } catch (AmazonServiceException ase) { ase.printStackTrace(); logger.info("====================================AWS S3 UPLOAD ERROR START======================================"); logger.info("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); logger.info("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); logger.info("Error Message: " + ase.getMessage()); logger.info("HTTP Status Code: " + ase.getStatusCode()); logger.info("AWS Error Code: " + ase.getErrorCode()); logger.info("Error Type: " + ase.getErrorType()); logger.info("Request ID: " + ase.getRequestId()); logger.info(ase.getMessage(), ase); logger.info("====================================AWS S3 UPLOAD ERROR END======================================"); throw new OperateFailureException("error occurs during upload to s3!"); } catch (AmazonClientException ace) { logger.info("====================================AWS S3 UPLOAD ERROR START======================================"); logger.info("Caught an AmazonClientException, which means the client encountered " + "a serious internal problem while trying to communicate with S3, " + "such as not being able to access the network."); logger.info("Error Message: " + ace.getMessage()); logger.info("====================================AWS S3 UPLOAD ERROR END======================================"); throw new OperateFailureException("error occurs during upload to s3!"); } } /** * 验证s3上是否存在名称为bucketName的Bucket * @param s3 * @param bucketName * @return */ public static boolean checkBucketExists (AmazonS3 s3, String bucketName) { List<Bucket> buckets = s3.listBuckets(); for (Bucket bucket : buckets) { if (Objects.equals(bucket.getName(), bucketName)) { return true; } } return false; }
上面的代码只是一部分,整个过程是在jsp页面吧文件上传到后台,后台创建一个临时文件,把临时文件上传到s3上,并获取一个可以下载文件的url;
这里是一个英文的参考:http://ceph.com/docs/master/radosgw/s3/java/
相关推荐
MINIO服务器基于AWS S3 SDK 文件上传及下载(C++实现类)
java上传图片到aws s3,最近因为项目原因,需要将程序下载到本地的图片上传到aws s3提供给国外的客户使用,文件为我使用的详细代码
已实现对象分页列表、对象上传(包含文件完整上传和分片)、对象下载、批量删除对象。其中分片支持断点续传,并实现异步线程池的多线程上传,加快了响应速度。
本文档主要面向JAVA开发人员,旨在指导JAVA开发人员利用AWS S3 JAVA SDK进行开发,对接XSKY EOS产品。阅 读该文档最好对对象存储有一定的了解,并且详细阅读过《XSKY EOS应用与开发指南》。 文档主要包括以下内容: ...
aws s3 js sdk 通过javascript调用aws 上传下载到s3存储
AWS s3 文件上传,下载。可以设置自己的服务器IP,accesskey,secretkey。
有了这个文档 AWS S3 服务java基本上没有啥问题了。。注:我也是在国外网站上找到的。分享给大家。。希望大家多多支持
PHP AWS S3 文件上传 文件删除
aws-s3-阅读器从亚马逊 AWS S3 读取文件到本地文件系统或从本地文件系统写入 S3。 允许 AWS S3 到本地文件系统同步用户事件(在调用 syncLocalDir 时)。这会将所有新创建的文件从 S3 存储桶读取到本地。 实施需要很...
赠送jar包:aws-java-sdk-s3-1.11.939.jar 赠送原API文档:aws-java-sdk-s3-1.11.939-javadoc.jar 赠送源代码:aws-java-sdk-s3-1.11.939-sources.jar 包含翻译后的API文档:aws-java-sdk-s3-1.11.939-javadoc-...
aws亚马逊的S3库C实现,亲测阿里云,七牛云,华为云可用
aws s3 10 基于python和boto3上传文件夹!AWS S3 上传文件,基于cmd命令行发现无法上传文件夹
AWS S3 全名是 Simple Storage Service,简便的存储服务。为什么这么起名啊?它: 提供了统一的接口 REST/SOAP 来统一访问任何数据 对 S3 来说,存在里面的数据就是对象名(键),和数据(值) 不限量,单个文件...
aws-s3-rds 用于将数据上传到 Amazon AWS S3 和 Amazon AWS RDS (MySQL) 实例并测量性能的 Java 程序。 AWS S3 的 ###Steps: 创建了一个 AWS 账户并注册了其免费套餐。 下载 PCI 和大学数据。 创建了一个名为cse...
使用Spring Boot将文件上传到AWS S3的简便方法 基于: 我做了一些改进,例如: 删除不赞成使用的对象 创建名为AmazonStatus的新输出类 修复删除过程 要与您合作,您需要在application.yml上添加存储桶信息: ...
将图像调整为各种大小,并将流保存到Amazon AWS S3。用npm安装npm i resize-to-s3用 var ResizeToS3 = require ( 'resize-to-s3' ) ;// AWS S3 configvar conf = { S3 : { region : 'eu-west-1' , accessKeyId : '...
亚马逊S3 用于存储和检索AWS S3云存储中文件的应用程序。 使用基于RSA和AES的加密对存储的文件进行加密。 设计 有关设计,请参见 。 特征 能够选择要使用的加密密钥对。 能够选择要存储在云中的本地文件。 能够...
aws-s3动态库,使用vs2013 编译器32位。方便的上次文件到s3服务器。
KEY用法 require 's3_dir'path = '/path/to/upload'bucket = 'mybucket'S3Dir.upload(path, bucket, credential: :aws_credentials)配置选项credential default ENV['FOG_CREDENTIAL'] .fog文件中 AWS 凭证的命名...
这个是如何在Coldfusion使用AMAZON的AWS的S3服务。我在Lucee上测试通过。里面的例子是实例测试过的。