阿里云OSS注册与使用

一、阿里云OSS注册与使用

1.登录阿里云官网

阿里官网链接

  • 通过点击右上角的登录注册按钮进行下一步
    在这里插入图片描述

2.登录注册

进行注册登录后会有个人身份验证操作,可以通过支付宝账号快速实名
在这里插入图片描述

3.搜索"对象存储 OSS"或者"OSS"

在这里插入图片描述

4.点击立即购买

注意:首次使用会有3个月的免费试用,内存20g
在这里插入图片描述

5.按需购买存储空间

在这里插入图片描述

6.购买完成回到上一个页面点击管理控制台或者直接进入管理控制台

在这里插入图片描述

7. 点击"Bucket列表"进入页面

在这里插入图片描述

8.创建Bucket

以下容器选择按需就行,注意:读写权限选择私有就无法公共访问,访问时需要加上身份后缀,可能导致身份信息泄露
在这里插入图片描述
在这里插入图片描述

9.创建完成后点击进入bucket

在这里插入图片描述

10.当点入的时候就可以看到内存中的文件

这里默认就是空文件夹
在这里插入图片描述

二、使用阿里云OSS

对于使用方法可以直接观看官方文档
阿里云OSS对象存储官方文档链接

直接开发参考(这里使用的是Java为例)

如果需要其他语言的教程,可以以此为例进行使用。
在这里插入图片描述

1.安装SDK

在这里插入图片描述
这里官方使用的是
在Maven工程中使用OSS Java SDK,只需在pom.xml中加入相应依赖即可。在中加入如下内容:

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.15.1</version>
</dependency>

如果使用的是Java 9及以上的版本,则需要添加JAXB相关依赖。添加JAXB相关依赖示例代码如下:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.activation</groupId>
    <artifactId>activation</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- no more than 2.3.3-->
<dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.3</version>
</dependency>

2.如果按照官方的文档步骤来这里需要先配置环境变量

但是我为了方便就不配置环境了,直接去使用

3.快速入门

我的代码对一些非固定的属性写在了application.yml文件中了,方便后期云端口变了好更改

  • application.yml配置文件中的代码
aliyun:
  OSS:
    endpoint: Endpoint的服务端点(例子:https://oss-cn-beijing.aliyuncs.com)
    accessKeyId: 访问凭证
    accessKeySecret: 访问凭证的密钥
    objectName : 存储空间内的文件地址
    bucketName : 就是bucket的名称

例子:

aliyun:
  OSS:
    endpoint: https://oss-cn-beijing.aliyuncs.com
    accessKeyId: LTAI***********iehvy4
    accessKeySecret: Jm8A*************lAE
    objectName : exampledir/
    bucketName : chen-buck
  • endpoint获取
    在这里插入图片描述
  • accessKeyId和accessKeySecret获取
    在这里插入图片描述

第二部点击进去创建AccessKey

  • bucketName就是一开始创建的名
    在这里插入图片描述

3.1 上传代码

package com.wedu.modules.fileCunChu;


import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

@Component
public class AliOssStorage {

   // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    @Value("${aliyun.OSS.endpoint}")
    private String endpoint;
    // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
    @Value("${aliyun.OSS.accessKeyId}")
    private String accessKeyId;
    @Value("${aliyun.OSS.accessKeySecret}")
    private String accessKeySecret;
    @Value("${aliyun.OSS.objectName}")
    private String objectName;
     // 填写Bucket名称,例如examplebucket。
    @Value("${aliyun.OSS.bucketName}")
    private String bucketName ;

     /**
     * @param file 前端传入所接收的文件
     * @param name 起的文件名称
     * @return
     * @throws Exception
     */
    @Override
    public String FileStorage(MultipartFile file, String name) throws Exception {
        // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
        String objectName1=objectName+name;
         // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId,accessKeySecret);
        try {
            //创建Put0bjectRequest对象。
            PutObjectRequest putObjectRequest=new PutObjectRequest(bucketName,objectName1,file.getInputStream());
            //设置该属性可以返回response。如果不设置,则返回的response为空。
            putObjectRequest.setProcess("true");
            //创建PutObject请求。
            PutObjectResult result=ossClient.putObject(putObjectRequest);
            //如果上传成功,则返回200。
            System.out.println(result.getResponse().getStatusCode());

        } 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();
            }
        }

        //返回Url
        //这里的url就是文件存储到云端的地址它是由
        //          https:                 //   bucket名称  .   服务端口                /   文件地址/文件名
        //https://chen-buck.oss-cn-beijing.aliyuncs.com/exampledir/a21a1f5e-c218-4991-adf9-374af000b268.jpg
        String url=endpoint.split("//")[0]+"//"+bucketName+"."+endpoint.split("//")[1]+"/"+objectName1;
        return url;
    }
}

controller层的代码

package com.wedu.modules.excleUpOrDo;

import com.alibaba.excel.EasyExcel;
import com.wedu.common.utils.R;
import com.wedu.modules.fileCunChu.AliOssStorage;
import com.wedu.modules.sys.controller.AbstractController;
import com.wedu.modules.sys.service.PromptInformationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.UUID;

@RestController
@RequestMapping("/excle")
public class ExcleUpOrDoController extends AbstractController {
//注入阿里云工具类(上面所写的类)
    @Autowired
    AliOssStorage donPath;
    //文件导入
    @PostMapping("/uplode")
    public R uplodeExcle(@RequestPart("file")MultipartFile file) throws Exception {
        //获取文件名
        String filename=file.getOriginalFilename();
        //获取文件扩展名
        String[] strings=filename.split("\\.");
        String KzName=strings[strings.length-1];

//通过UUID取文件名(也可以通过  时间+文件名+后缀的方式取名)
        UUID randomString= UUID.randomUUID();

        //拼接名称
        String name =randomString+"."+KzName;
        //本地上传
        String s = donPath.FileStorage(file, name);

        return R.ok().put("url",s);
    }
}

测试

我这里通过接口上传了一张图片,接口成功接受并返回图片地址
在这里插入图片描述
可以通过该地址直接下载图片

你好!关于Spring Boot集成阿里云OSS的问题,我可以给你一些基本的指导。 首先,在你的Spring Boot项目中,你需要添加阿里云OSS的依赖。你可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.9.0</version> </dependency> ``` 接下来,在你的application.properties或者application.yml文件中,配置阿里云OSS的相关信息。例如: ```yaml oss.endpoint=your_endpoint oss.accessKeyId=your_access_key_id oss.accessKeySecret=your_access_key_secret oss.bucketName=your_bucket_name ```***aliyuncs.com),`your_access_key_id`和`your_access_key_secret`替换为你的访问密钥ID和访问密钥秘钥,`your_bucket_name`替换为你的OSS存储桶名称。 然后,你可以创建一个OSS客户端的Bean,用于操作OSS。你可以在一个@Configuration类中添加以下代码: ```java import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class OSSConfig { @Value("${oss.endpoint}") private String endpoint; @Value("${oss.accessKeyId}") private String accessKeyId; @Value("${oss.accessKeySecret}") private String accessKeySecret; @Bean public OSS ossClient() { return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); } } ``` 现在,你可以在你的代码中注入OSS客户端,并使用它进行文件的上传、下载等操作。例如: ```java import com.aliyun.oss.OSS; import com.aliyun.oss.model.PutObjectRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class FileService { @Autowired private OSS ossClient; public void uploadFile(String bucketName, String objectName, String localFilePath) { ossClient.putObject(new PutObjectRequest(bucketName, objectName, new File(localFilePath))); } // 其他操作方法... } ``` 上述代码中的`uploadFile`方法可以用于将本地文件上传到指定的OSS存储桶中。 当然,以上只是一个简单的示例,你可以根据你的实际需求来使用阿里云OSS。希望这些信息能对你有所帮助!如果还有其他问题,请继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值