阿里云oss上传文件开发

OSS开发

项目里有大量图片和文件,给服务器的内存造成了较大压力,需要使用阿里云OSS存储,把文件和图片上传到OSS

阿里云OSS官方文档

上传文件代码:

/**
     * @Description: 上传文件到OSS文件服务器
     * @param key
     *            上传为OSS文件服务器的唯一标识
     * @throws Exception
     * @param filePath
     * @param key
     * 
     */

    public static String uploadFile(String key, InputStream fileInputStream, Date expires) {
   
        // 生成OSSClient,您可以指定一些参数,详见“SDK手册 > Java-SDK > 初始化”,
        // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        try {
   

            // meta.setContentEncoding("UTF-8");
            // 上传Object.
            ossClient.putObject(bucketName, key, fileInputStream);
            // System.out.println("Object:" + key + "存入OSS成功。");
            ObjectMetadata objectMetadata = new ObjectMetadata();
            objectMetadata.setContentType(getcontentType(key));
            // Date expires = new Date(System.currentTimeMillis() + 10 * 365 * 24 * 3600 * 1000);
            String[] url = ossClient.generatePresignedUrl(bucketName, key, expires).toString().split("\\?");
            String fileUrl = url[0].toString();
            //String fileUrl1 = fileUrl.substring(0, 5) + "s" + fileUrl.substring(5);
            // System.out.println("uploadFile()方法执行成功,返回fileUrl:" + fileUrl);
            return fileUrl;

        } catch (Exception e) {
   
            e.printStackTrace();
            System.out.println("uploadFile()方法执行失败");
            return null;
        } finally {
   
            ossClient.shutdown();
        }

    }
  • endpoint是访问OSS的域名。如果您已经在OSS的控制台上 创建了Bucket,请在控制台上查看域名。
  • endpoint的格式形如“http://oss-cn-hangzhou.aliyuncs.com/”,注意http://后不带bucket名称,
  • 比如“http://bucket-name.oss-cn-hangzhou.aliyuncs.com”,是错误的endpoint,请去掉其中的“bucket-name”。
  • accessKeyId和accessKeySecret是OSS的访问密钥,您可以在控制台上创建和查看,
  • 创建和查看访问密钥的链接地址是:https://ak-console.aliyun.com/#/。
  • 注意:accessKeyId和accessKeySecret前后都没有空格,从控制台复制时请检查并去除多余的空格。
  • Bucket用来管理所存储Object的存储空间,详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。
  • Bucket命名规范如下:只能包括小写字母,数字和短横线(-),必须以小写字母或者数字开头,长度必须在3-63字节之间。
以上参数最好写在配置文件中,方便修改
在上传文件时还要判断一下文件的类型,否则上传完成之后无法下载或在线浏览

代码:

/**
     * 判断文件的类型
     * @param FilenameExtension
     * @return
     */
    public static String getcontentType(String fileName) {
   
    	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值