您的当前位置:首页 > 建站知识

【兰州网站建设】使用阿里云OSS上传文件

时间:2019-05-19 00:00:07  作者:

1.控制台操作
首先介绍一下阿里云OSS对象存储的一些基本概念。
1.1 进入对象存储界面
登录阿里云账号,进入对象存储界面,如图所示。
进入后如图所示。
1.2 OSS基本概念
这里不过多介绍如何在阿里云上传下载文件,这些操作基本上点一点都能找到。
1.2.1 Bucket
Bucket实质就是阿里云OSS对象存储的一个存储空间,按照计算机理解的话可以理解为一个磁盘(不知道这样比喻是否恰当)。
创建桶的过程很简单,如图所示,填写对应内容即可。
这里需要注意,不同分区的Endpoint是不同的,Endpoint在后续API使用过程中会用到。至于存储类型和读写权限相关设置,都结合自身情况来使用,这里以标准存储和私有权限为例进行介绍。
1.2.2 AccessKey
AccessKey是访问阿里云API的秘钥,这里也需要提前创建一份,创建后我们需要记住自己的AccessKey ID和Access Key Secret,如果忘记可以在如图位置查询。
2 API使用
2.1 API地址
一般使用对象存储无非就是上传和下载文件,完整API地址如下:
https://help.aliyun.com/document_detail/32015.html?spm=5176.8466032.bucket-object.1.33ac1450TuX65y
2.2 API使用准备
Java使用很简单,直接在Maven中引用依赖,如下:
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency>
2.3 构建OSSClient实例
这里就需要用到我们上面提到的endpoint和AccessKey,构建实例内容如下所示。
// Endpoint以杭州为例,其它Region请按实际情况填写。 String endpoint = "http://oss-cn-beijing.aliyuncs.com"; // 使用刚刚创建的accessKeyId和accessKeySecret String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; // 创建OSSClient实例。 OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); //todo 对OSS进行操作 // 关闭OSSClient。 ossClient.shutdown();
2.4 上传文件
上传文件常用的方式大致为两种,一种是返回可以查看文件的地址,另外一种是通过地址可以直接下载文件。
2.4.1 上传文件,返回可以预览图片的地址
上传文件有一些需要注意的地方:
1.文件名不要重复,不然会覆盖。
2.建议将不同日期的文件分别创建一个文件夹方便区分。
这里先以上传本地桌面的一个图片为例,上传后在Bucket内自动创建日期格式yyyyMMdd的文件夹存放文件,文件名按照当前时间戳加随机数的形式拼接,由于返回的URL是带有签名信息的,所以这里暂时设置过期时间为一小时,如果需要可以将时间加长。
完整内容如下所示:
package com.dalaoyang.upload; import com.aliyun.oss.OSSClient; import java.io.File; import java.net.URL; import java.security.SecureRandom; import java.text.SimpleDateFormat; import java.util.Date; public class AliyunUpload { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); String endpoint = "http://oss-cn-beijing.aliyuncs.com"; String accessKeyId = "LTAIRr3alAhROGTA"; String accessKeySecret = "******"; String fileName = "/Users/dalaoyang/Desktop/aliyun.jpeg"; String bucketName = "dalaoyang-test"; // 获取文件的后缀名 String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 生成上传文件名 String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + suffixName; String objectName = sdf.format(new Date()) + "/" + finalFileName; File file = new File(fileName); OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); ossClient.putObject(bucketName, objectName, file); // 设置URL过期时间为1小时。 Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000); // 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。 URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration); ossClient.shutdown(); System.out.println(url.toString()); } }
返回地址格式如下:
http://dalaoyang-test.oss-cn-beijing.aliyuncs.com/20190518/1558155342968407.jpeg?Expires=15
网站建设
产品项目
解决方案
联系我们
  • 在线咨询:
  • 联系电话:15339852636
  • 联系邮箱:web@fengmoit.com
  • 官方网店:淘宝店

Copyright © 2010-2018 风魔科技 版权所有      

售前咨询
售后服务
15339852636