最近因为项目原因,需要将程序下载到本地的图片上传到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相关推荐

  1. aws s3 獲取所有文件_通过Java上传下载AWS S3文件,并解决文件数量超过1000的问题...

    1 前言 Amazon S3 (Simple Storage Service)是很常用的文件存储服务,我们的场景是上游把流水文件放到S3,我们再从S3读取并对账. 2 初始化S3 首先要获取相关的账号 ...

  2. java 调用s3 ip 端口,AWS S3 接口调用

    AWS S3 全称:(Amazon Simple Storage Service), 是一种面向网络的存储服务,可以支持用户随时在Web的任何位置,存储和检索任意大小的数据 本身也提供了简单而直观的管 ...

  3. java aws s3 下载文件_使用send_file从Amazon S3下载文件?

    为用户保持简单 我认为处理此问题的最佳方法是使用过期的S3网址 . 其他方法有以下问题: 文件首先下载到服务器,然后下载到用户 . 使用 send_data 不会产生预期的"browser ...

  4. AWS s3 V4签名算法

    原创,转载请注明:http://www.jianshu.com/p/a6a02309190f 一.开篇说明: 以下思考方向,是以Android端为出发点(IOS同理) AWS:Amazon Web S ...

  5. AWS S3云存储服务

    AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...

  6. aws s3 连接建立

    2019独角兽企业重金招聘Python工程师标准>>> aws s3 连接建立 遇到的问题是  errorCode:301 是  网站永久重定向了 主要的错误原因: 1.aws 的服 ...

  7. node aws 内存溢出_如何使用Node和AWS S3设置简单的图像上传

    node aws 内存溢出 by Filip Jerga 由Filip Jerga 如何使用Node和AWS S3设置简单的图像上传 (How to set up simple image uploa ...

  8. AWS S3文件/文件夹删除

    1. 关于AWS S3的使用相关知识总结可以参考:AWS S3 学习小结. 2. 以下主要是想总结一下关于S3文件.文件夹如何删除,示例版本是源码里面的java2. 注:要知道,S3不存在子文件夹的概 ...

  9. Spring Boot项目集成AWS SDK连接到AWS S3,实现上传下载功能

    本文主要描写在Spring Boot项目里集成AWS SDK连接到AWS S3,实现上传下载功能的具体代码和注意事项.如有不足和错误之处,欢迎指正. AWS S3相关介绍 AWS S3(官网): ht ...

最新文章

  1. js数组、字符串常用方法和互相转换,==和===
  2. UVa 11063 - B2-Sequence
  3. 2018程序员最佳ssh免费登陆工具
  4. 互联网+2.0:技术有多强 梦想才有多近
  5. McGill微软将卷积操作加入到ViT中,捕获更详细的局部信息!准确率达87.7%!代码已开源!...
  6. 肺结节目标检测_有肺结节就代表离肺癌不远了?别吓自己,简单几问解答你的困惑...
  7. 推荐7 款实用好用的电脑软件
  8. 安卓模拟器怎么切换IP地址
  9. Ajax之搭建一个基本的Ajax框架(技术分析篇)
  10. Python中利用scipy库进行最小二乘回归分析(金融相关)
  11. 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
  12. Android 获取系统语言,区分简繁体中文
  13. ROS——Gazebo仿真——全向轮小车——运动学模型分析
  14. 人工智能在材料科学的应用
  15. 【应用C】C语言实现离散数学合式公式的递归判断
  16. 教你几招HASH表查找的方法
  17. linux系统下能玩网页游戏下载软件,最适合玩游戏的Linux 系统
  18. 一本通5.4练习1:涂抹果酱
  19. 我觉得是全网最全最好最有用的sed命令详解+示例
  20. leetcode17 Sum of Two Integers

热门文章

  1. Python练习题及答案
  2. SpringBoot-基础篇
  3. 为什么现在很多企业选择代理记账公司
  4. Ubuntu查看AMD显卡使用情况
  5. oracle 11c安装包
  6. 怒肝20天用C语言写出的排序集合
  7. 超简单的待办事项列表管理器todo
  8. 计算机三维设计基础知识,三维设计基础-中国大学mooc-题库零氪
  9. MacOS Docker 安装
  10. kernel zram feature