网站推广策略和营销策略,广东网站建设微信网站定制,国内站长做国外网站,wordpress图片加链接地址目录
1 登录/注册阿里云并进入控制台
2 进入OSS控制台
3 创建bucket 4 查看bucket
5 获取AccessKey
6 查看帮助文档
7 添加Maven依赖
8 获取示例代码并改造成工具类
9 测试 1 登录/注册阿里云并进入控制台 2 进入OSS控制台 3 创建bucket 4 查看bucket 5 获取AccessKe…目录
1 登录/注册阿里云并进入控制台
2 进入OSS控制台
3 创建bucket 4 查看bucket
5 获取AccessKey
6 查看帮助文档
7 添加Maven依赖
8 获取示例代码并改造成工具类
9 测试 1 登录/注册阿里云并进入控制台 2 进入OSS控制台 3 创建bucket 4 查看bucket 5 获取AccessKey 6 查看帮助文档
在OSS管理控制台界面中(即3 创建bucket步骤中的界面) 7 添加Maven依赖 Java9以下版本只需要在dependencies中添加如下内容
dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.15.1/version
/dependency
Java9及以上版本还需额外添加如下内容
dependencygroupIdjavax.xml.bind/groupIdartifactIdjaxb-api/artifactIdversion2.3.1/version
/dependency
dependencygroupIdjavax.activation/groupIdartifactIdactivation/artifactIdversion1.1.1/version
/dependency
!-- no more than 2.3.3--
dependencygroupIdorg.glassfish.jaxb/groupIdartifactIdjaxb-runtime/artifactIdversion2.3.3/version
/dependency
8 获取示例代码并改造成工具类 在简单上传中我们可以获得上传字符串的代码如下
public class Demo {public static void main(String[] args) throws Exception {// Endpoint以华东1杭州为例其它Region请按实际情况填写。String endpoint https://oss-cn-hangzhou.aliyuncs.com;// 从环境变量中获取访问凭证。运行本代码示例之前请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。EnvironmentVariableCredentialsProvider credentialsProvider CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();// 填写Bucket名称例如examplebucket。String bucketName examplebucket;// 填写Object完整路径完整路径中不能包含Bucket名称例如exampledir/exampleobject.txt。String objectName exampledir/exampleobject.txt;// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(endpoint, credentialsProvider);try {// 填写字符串。String content Hello OSS你好世界;// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest new PutObjectRequest(bucketName, objectName, new ByteArrayInputStream(content.getBytes()));// 如果需要上传时设置存储类型和访问权限请参考以下示例代码。// ObjectMetadata metadata new ObjectMetadata();// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());// metadata.setObjectAcl(CannedAccessControlList.Private);// putObjectRequest.setMetadata(metadata);// 上传字符串。PutObjectResult result ossClient.putObject(putObjectRequest); } catch (OSSException oe) {System.out.println(Caught an OSSException, which means your request made it to OSS, but was rejected with an error response for some reason.);System.out.println(Error Message: oe.getErrorMessage());System.out.println(Error Code: oe.getErrorCode());System.out.println(Request ID: oe.getRequestId());System.out.println(Host ID: oe.getHostId());} catch (ClientException ce) {System.out.println(Caught an ClientException, which means the client encountered a serious internal problem while trying to communicate with OSS, such as not being able to access the network.);System.out.println(Error Message: ce.getMessage());} finally {if (ossClient ! null) {ossClient.shutdown();}}}
}
经过改造我们可以得到一个可以上传图片的工具类
//代码参考自黑马程序员
public class AliOssUtil {// 其它Region请按实际情况填写如何获得如下图private static final String ENDPOINT https://oss-cn-beijing.aliyuncs.com;// 从环境变量中获取访问凭证。运行本代码示例之前请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。//从之前保存的CSV文件中获取private static final String ACCESS_KEY_IDLTAI5tJQVkx1pkBrbuPBA3Lx;private static final String ACCESS_KEY_SECRET2Q0i7QsHQO7jNc8xIPirX4YHoQvXr2;// 填写Bucket名称private static final String BUCKET_NAME zy-blog-oss;public static String uploadFile(String objectName, InputStream in) throws Exception {// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);String url ;try {// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest new PutObjectRequest(BUCKET_NAME, objectName, in);PutObjectResult result ossClient.putObject(putObjectRequest);//url组成: https://bucket名称.区域节点/objectNameurl https://BUCKET_NAME.ENDPOINT.substring(ENDPOINT.lastIndexOf(/)1)/objectName;} catch (OSSException oe) {System.out.println(Caught an OSSException, which means your request made it to OSS, but was rejected with an error response for some reason.);System.out.println(Error Message: oe.getErrorMessage());System.out.println(Error Code: oe.getErrorCode());System.out.println(Request ID: oe.getRequestId());System.out.println(Host ID: oe.getHostId());} catch (ClientException ce) {System.out.println(Caught an ClientException, which means the client encountered a serious internal problem while trying to communicate with OSS, such as not being able to access the network.);System.out.println(Error Message: ce.getMessage());} finally {if (ossClient ! null) {ossClient.shutdown();}}return url;}
}
ENDPOINT获得方式 9 测试
①编写控制类
RestController
public class FileUploadController {PostMapping(/upload)public ResultString upload(MultipartFile file) throws Exception {String originalFilename file.getOriginalFilename();//保证文件的名字是唯一的,从而防止文件覆盖String filename UUID.randomUUID() originalFilename.substring(originalFilename.lastIndexOf(.));String url AliOssUtil.uploadFile(filename,file.getInputStream());return Result.success(url);}
}
②Postman测试 ③查看阿里云 已经成功存储此时访问②中连接就会下载得到图片。