这两天在学着使用阿里云,下面介绍下如何上传文件到阿里云OSS
首先需要进入控制台,在左边菜单中找到对象存储OSS,然后在右上角点击生成accessKey,如图
进入后生成accessKey,用于上传文件
下面看看代码如何写的
首先在工程中导入阿里云的sdk
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.6.0</version>
</dependency>
然后加入配置文件aliyun.properties
//注意,这里可以在OSS中先建一个bucket,然后找到bucket的OSS外网域名,如我新建的bucket叫kevindai-pro,此bucket的OSS外网域名为kevindai-pro.oss-cn-shanghai.aliyuncs.com,那么这里的endpoint则写成http://oss-cn-shanghai.aliyuncs.com,可以根据实际情况来写
endpoint = http://oss-cn-shanghai.aliyuncs.com
accessKeyId = youraccesskeyId
accessKeySecret = youraccessKeySecret
bucketName = yourbucketName
使用代码如下
@Configuration
@PropertySource("aliyun.properties")
public class Upload2AliyunUtils {
public static String accessKeyId;
public static String accessKeySecret;
public static String endpoint;
public static String bucketName;
@Value("${bucketName}")
public void setBucketName(String bucketName) {
Upload2AliyunUtils.bucketName = bucketName;
}
@Value("${endpoint}")
public void setEndpoint(String endpoint) {
Upload2AliyunUtils.endpoint = endpoint;
}
@Value("${accessKeyId}")
public void setAccessKeyId(String accessKeyId) {
Upload2AliyunUtils.accessKeyId = accessKeyId;
}
@Value("${accessKeySecret}")
public void setAccessKeySecret(String accessKeySecret) {
Upload2AliyunUtils.accessKeySecret = accessKeySecret;
}
public static String uploadObject(File file) throws FileNotFoundException {
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
client.putObject(bucketName,file.getName(),new FileInputStream(file));
Date expiration = new Date(new Date().getTime() + 3600 * 1000);// 生成URL
URL url = client.generatePresignedUrl(bucketName, "字符串", expiration);
client.shutdown();
return url.toString();
}
public static String uploadObject(InputStream inputStream,String fileName){
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
client.putObject(bucketName,fileName,inputStream);
Date expiration = new Date(new Date().getTime() + 3600 * 1000);// 生成URL
URL url = client.generatePresignedUrl(bucketName, "字符串", expiration);
client.shutdown();
return url.toString();
}
}