java上传图片到aws s3
最近因为项目原因,需要将程序下载到本地的图片上传到aws s3提供给国外的客户使用,下面是我用到的代码:
第一步:
连接aws s3:
BasicAWSCredentials awsCreds = new BasicAWSCredentials(Access key ID, Secret access key);
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion(Regions.US_EAST_2)
.build();
第二步:
这一步首先要确定你的s3上面有可使用的bucket。(列出s3上所有bucket的代码会在文后给出)
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/"+type); //type为设置上传图片的类型,jpg、png,如果不设置下载下来使用是会打不开
FileInputStream inputStream = new FileInputStream(path); //path为本地保存图片的路径,eg: E:/test.jpg
s3.putObject(bucket_name, key, inputStream, metadata); //key代表你上传的文件的唯一标识
第三步:
确认图片是否已经上传到对应的bucket里。
ObjectListing result = s3.listObjects(bucket_name);
List<S3ObjectSummary> objects = result.getObjectSummaries();
System.out.println(objects.size());
for (S3ObjectSummary os: objects) {
System.out.println("listObjects* " + os.getKey()+"====="+os.getLastModified());
}
至此图片上传就结束了。
下面是其他代码:
//获取s3上面所有的buckets;
List<Bucket> buckets = s3.listBuckets();
System.out.println("Your Amazon S3 buckets are:");
System.out.println(buckets.size());
for (Bucket b : buckets) {
System.out.println("* " + b.getName());
}
将s3图片下载到本地(可以用于验证自己上传的图片是否可以使用)
public static void amazonS3Downloading(AmazonS3 s3Client,String bucketName,String key,String targetFilePath){
S3Object object = s3Client.getObject(new GetObjectRequest(bucketName,key));
if(object!=null){
System.out.println("Content-Type: " + object.getObjectMetadata().getContentType());
//InputStream input = null;
FileOutputStream fileOutputStream = null;
byte[] data = null;
S3ObjectInputStream input = null;
try {
//获取文件流
input = object.getObjectContent();
data = new byte[input.available()];
System.out.println(data.length);
int len = 0;
String path = targetFilePath + "/" + key;
File file = new File(path);
fileOutputStream = new FileOutputStream(file);
while ((len = input.read(data)) != -1) {
fileOutputStream.write(data, 0, len);
}
System.out.println("下载文件成功");
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fileOutputStream!=null){
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(input!=null){
try {
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
测试下载代码:
amazonS3Downloading(s3, bucket_name,key, "E:/test");
java上传图片到aws s3相关推荐
- aws s3 獲取所有文件_通过Java上传下载AWS S3文件,并解决文件数量超过1000的问题...
1 前言 Amazon S3 (Simple Storage Service)是很常用的文件存储服务,我们的场景是上游把流水文件放到S3,我们再从S3读取并对账. 2 初始化S3 首先要获取相关的账号 ...
- java 调用s3 ip 端口,AWS S3 接口调用
AWS S3 全称:(Amazon Simple Storage Service), 是一种面向网络的存储服务,可以支持用户随时在Web的任何位置,存储和检索任意大小的数据 本身也提供了简单而直观的管 ...
- java aws s3 下载文件_使用send_file从Amazon S3下载文件?
为用户保持简单 我认为处理此问题的最佳方法是使用过期的S3网址 . 其他方法有以下问题: 文件首先下载到服务器,然后下载到用户 . 使用 send_data 不会产生预期的"browser ...
- AWS s3 V4签名算法
原创,转载请注明:http://www.jianshu.com/p/a6a02309190f 一.开篇说明: 以下思考方向,是以Android端为出发点(IOS同理) AWS:Amazon Web S ...
- AWS S3云存储服务
AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...
- aws s3 连接建立
2019独角兽企业重金招聘Python工程师标准>>> aws s3 连接建立 遇到的问题是 errorCode:301 是 网站永久重定向了 主要的错误原因: 1.aws 的服 ...
- node aws 内存溢出_如何使用Node和AWS S3设置简单的图像上传
node aws 内存溢出 by Filip Jerga 由Filip Jerga 如何使用Node和AWS S3设置简单的图像上传 (How to set up simple image uploa ...
- AWS S3文件/文件夹删除
1. 关于AWS S3的使用相关知识总结可以参考:AWS S3 学习小结. 2. 以下主要是想总结一下关于S3文件.文件夹如何删除,示例版本是源码里面的java2. 注:要知道,S3不存在子文件夹的概 ...
- Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能
本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...
最新文章
- js数组、字符串常用方法和互相转换,==和===
- UVa 11063 - B2-Sequence
- 2018程序员最佳ssh免费登陆工具
- 互联网+2.0:技术有多强 梦想才有多近
- McGill微软将卷积操作加入到ViT中,捕获更详细的局部信息!准确率达87.7%!代码已开源!...
- 肺结节目标检测_有肺结节就代表离肺癌不远了?别吓自己,简单几问解答你的困惑...
- 推荐7 款实用好用的电脑软件
- 安卓模拟器怎么切换IP地址
- Ajax之搭建一个基本的Ajax框架(技术分析篇)
- Python中利用scipy库进行最小二乘回归分析(金融相关)
- 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
- Android 获取系统语言,区分简繁体中文
- ROS——Gazebo仿真——全向轮小车——运动学模型分析
- 人工智能在材料科学的应用
- 【应用C】C语言实现离散数学合式公式的递归判断
- 教你几招HASH表查找的方法
- linux系统下能玩网页游戏下载软件,最适合玩游戏的Linux 系统
- 一本通5.4练习1:涂抹果酱
- 我觉得是全网最全最好最有用的sed命令详解+示例
- leetcode17 Sum of Two Integers