OSS对象资源管理

news2024/9/27 5:52:01

1、登录aliyun

1.1、什么是OSS?有什么用?

OSS 是“Object Storage Service”的缩写,中文常称为“对象存储服务”。OSS 是一种互联网云存储服务,主要用于海量数据的存储与管理。

相较于nginx,OSS更灵活,不用将文件存储于本地磁盘或服务器中,并且可以实现文件共享,它通过简单的RESTful接口提供高可用、高可靠、安全、低成本的数据存储能力,支持多种数据的存储需求,如图片、视频、音频文件以及各类文档等,在当今市场上应用广泛。

1.2、进入阿里云网站

 

2、开通OSS

2.1 点击”免费试用“

 

2.2 立即试用 

 2.4、提交成功

3、创建存储空间

3.1新建Bucket

 

3.2 进入Bucket并创建文件夹

"Bucket"是一个核心概念,Bucket 可以被形象地理解为一个容器或目录,用于存储和组织文件或对象。

3.3进入Bucket后查看概览,记录下图信息 

 4、查询accessKeyId和accessKeySecret。

 4.1 点击确认

 4.2点击继续使用AccessKey

 4.3 创建AccessKey

4.4 安全验证 

 4.5 获取AccessKeyId和AccessKeySecret

 

5 代码操作

5.1 设置配置信息

# properties文件格式
aliyun.oss.bucketName = Bucket名字
aliyun.oss.endpoint = 自己的域名节点
aliyun.oss.accessKeyId = 自己的accessKeyId
aliyun.oss.accessKeySecret = 自己的accessKeySecret

#yml文件格式
#aliyun:
#  oss:
#    bucketName:
#    endpoint: 
#    accessKeyId: 
#    accessKeySecret: 

 5.2 引入依赖


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

5.3 创建工具类AliOssUtil

AliOssUtil是一个用于封装阿里云对象存储服务(OSS)操作的工具类。这个工具类可以帮助你更简单地执行常见的OSS操作,如上传文件、下载文件、删除文件、列出bucket中的对象等。

package com.beiyou.Util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;

import java.io.File;
import java.net.URL;
import java.util.Date;

public class AliOssUtil {

    private static final String ENDPOINT = ""; // 更改为你的Endpoint
    private static final String ACCESS_KEY_ID = ""; // 更改为你的Access Key ID
    private static final String ACCESS_KEY_SECRET = ""; // 更改为你的Access Key Secret
    private static final String BUCKET_NAME = ""; // 更改为你的Bucket名称

    private static OSS ossClient;

    // 初始化OSS客户端
    public static void init() {
        ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
    }

    // 上传文件到OSS
    public static void uploadFile(String objectName, File file) {
        ossClient.putObject(new PutObjectRequest(BUCKET_NAME, objectName, file));
    }

    // 删除OSS上的文件
    public static void deleteFile(String objectName) {
        ossClient.deleteObject(BUCKET_NAME, objectName);
    }

    // 获取文件URL
    public static URL getUrl(String objectName, int expires) {
        // 设置URL过期时间为expires秒后
        Date expiration = new Date(System.currentTimeMillis() + expires * 1000L);
        return ossClient.generatePresignedUrl(BUCKET_NAME, objectName,expiration);
    }

	    // 列出Bucket中的所有对象
    public static List<OSSObjectSummary> listAllObjects() {
        ObjectListing objectListing = ossClient.listObjects(new ListObjectsRequest(BUCKET_NAME));
        List<OSSObjectSummary> objectSummaries = objectListing.getObjectSummaries();
        while (true) {
            // 如果有下一批,继续获取
            if (objectListing.isTruncated()) {
                objectListing = ossClient.listObjects(String.valueOf(objectListing));
                objectSummaries.addAll(objectListing.getObjectSummaries());
            } else {
                break;
            }
        }
        return objectSummaries;
    }


    // 关闭OSS客户端
    public static void shutdown() {
        ossClient.shutdown();
    }
}

 5.4 测试

package com.beiyou;


import com.beiyou.Util.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.File;
import java.net.URL;

@Slf4j
@SpringBootTest
class Application {

    // 上传文件
    @Test
    void contextLoads() {
        AliOssUtil.init();

        // 上传文件
        File file = new File("C:\\Users\\ljj\\Downloads\\1.jpg");
        String name = file.getName();
        AliOssUtil.uploadFile(name, file);

        // 关闭OSS客户端
        AliOssUtil.shutdown();
    }


    // 删除文件
    @Test
    void deleteFile() {
        AliOssUtil.init();

        // 删除文件
        AliOssUtil.deleteFile("AccessKey.csv");

        // 关闭OSS客户端
        AliOssUtil.shutdown();
    }

    @Test
    void getUrl() {
        AliOssUtil.init();

        // 获取文件URL
        URL url = AliOssUtil.getUrl("1.jpg", 3600);// 3600 seconds = 1 hour
        if (url != null) {
            System.out.println("文件URL: " + url);
        } else {
            System.out.println("无法获取文件URL");
        }

        // 关闭OSS客户端
        AliOssUtil.shutdown();
    }

	    @Test
    void listObjects() {
        AliOssUtil.init();

        // 列出所有文件
        List<OSSObjectSummary> summaries = AliOssUtil.listAllObjects();
        for (OSSObjectSummary summary : summaries) {
            System.out.println(" - " + summary.getKey() + "  " +
                    "(size = " + summary.getSize() + ")");
        }

        // 关闭OSS客户端
        AliOssUtil.shutdown();
    }


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2137815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

点云深度学习系列:Sam2Point——基于提示的点云分割

文章&#xff1a;SAM2POINT:Segment Any 3D as Videos in Zero-shot and Promptable Manners 代码&#xff1a;https://github.com/ZiyuGuo99/SAM2Point Demo&#xff1a;https://huggingface.co/spaces/ZiyuG/SAM2Point 1&#xff09;摘要 文章介绍了SAM2POINT&#xff0c;这是…

跟《经济学人》学英文:2024年09月14日这期 People are splurging like never before on their pets

People are splurging like never before on their pets Would you buy your furry companion a cologne? like never before&#xff1a;从未有过&#xff1b;未曾发生过 splurge&#xff1a;挥霍&#xff1b;浪费&#xff1b;破费&#xff1b;大量花费&#xff1b;过度消…

python 读取excel数据存储到mysql

一、安装依赖 pip install mysql-connector-python 二、mysql添加表students CREATE TABLE students (ID int(11) NOT NULL AUTO_INCREMENT,Name varchar(50) DEFAULT NULL,Sex varchar(50) DEFAULT NULL,PRIMARY KEY (ID) ) ENGINEInnoDB AUTO_INCREMENT13 DEFAULT CHARSETu…

S32K3 工具篇5:如何使用lauterbach下载调试elf文件

S32K3 工具篇5&#xff1a;如何使用lauterbach下载调试elf文件 一&#xff0c;利用trace32现有flash脚本烧录elf二&#xff0c;debug 现有elf文件 之前写过如何在S32DS中使用lauterbach下载&#xff0c;但是对于RTD EB MCAL的代码&#xff0c;通常情况下是使用命令的方式去编译…

Spring Boot母婴商城:安全、便捷、高效

2 相关技术 2.1 SSM框架介绍 本课题程序开发使用到的框架技术&#xff0c;英文名称缩写是SSM&#xff0c;在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等&#xff0c;作为一个课题程序采用SSH框架也可以&#xff0c;SSM框架也可以&#xff0c;SpringMVC也可以。SSH框架…

C语言 | Leetcode C语言题解之第399题除法求值

题目&#xff1a; 题解&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/typedef struct hash_node_t {char *key;double val;int distinguish_flag; // 用于区分不同的关系struct hash_node_t *p_next; }HASH_NODE_T;typedef str…

clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)

目录 摘要训练pre-train model的过程将pre-train model应用于下游任务应用&#xff08;待更新&#xff09; 论文/项目地址&#xff1a;https://github.com/OpenAI/CLIP 提供了clip的pre-trained model的权重&#xff0c;也可安装使用pre-trained model 摘要 使用标签标注的图…

【IEEEACM Fellow、CCF组委】第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)

第三届人工智能与智能信息处理国际学术会议&#xff08;AIIIP 2024&#xff09; 2024 3rd International Conference on Artificial Intelligence and Intelligent Information Processing 中国-天津 | 2024年10月25-27日 | 会议官网&#xff1a;www.aiiip.net 会…

【CTF MISC】XCTF GFSJ1086 [简单] 简单的base编码 Writeup(Base64编码+循环解码+Base92编码)

[简单] 简单的base编码 你懂base编码吗&#xff1f; 工具 在线BASE92编码解码&#xff1a;https://ctf.bugku.com/tool/base92 解法 Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1V…

数据集 wider person 户外密集行人检测 >> DataBall

数据集 wider person 用于野外密集行人检测的多样化数据集 行人检测 目标检测 户外密集行人检测的多样化数据集 WiderPerson: A Diverse Dataset for Dense Pedestrian Detection in the Wild article{zhang2019widerperson, Author {Zhang, Shifeng and Xie, Yiliang and Wa…

蛋白质结构变换中的四元数和旋转矩阵介绍

在蛋白质结构变换中,四元数和旋转矩阵都是用来描述旋转的重要工具。 一、旋转矩阵 定义与形式: 旋转矩阵是一个 33 的矩阵,用于将一个向量在三维空间中进行旋转操作。它可以表示为:其中,每个元素都是实数,且满足一定的正交性条件,即旋转矩阵的逆等于它的转置。作用原理…

Stanley算法原理

Stanley Controller与Pure Pursuit算法类似&#xff0c;其同样是基于几何追踪的轨迹跟踪控制器&#xff0c;但是与Pure Pursuit不同的是&#xff0c;Stanley Controller算法基于前轮中心点为参考点进行控制&#xff0c;没有预瞄距离&#xff0c;以前轮中心点与最近参考轨迹点进…

『功能项目』切换职业面板【48】

我们打开上一篇47技能冷却蒙版的项目&#xff0c; 本章要做的事情是切换职业UI面板的功能 首先双击打开Canvas预制体在左上主角面板信息中新建一个button按钮 重命名&#xff08;父物体是按钮Button&#xff0c;子物体Image即可&#xff09; 创建一个Image 设计一下布局 复制三…

每日学习一个数据结构-B+树

文章目录 什么是B树示意图B树的基本特点B树的优点B树的应用场 B树分裂和合并的机制节点分裂节点合并注意事项 什么是B树 B树是一种自平衡的树数据结构&#xff0c;广泛应用于数据库和操作系统的索引结构中&#xff0c;特别是在MySQL的InnoDB存储引擎中。它通过保持数据排序&am…

Linux基础-Makefile的编写、以及编写第一个Linux程序:进度条(模拟在 方便下载的同时,更新图形化界面)

目录 一、Linux项目自动化构建工具-make/Makefile ​编辑 背景&#xff1a; makefile小技巧&#xff1a; 二、Linux第一个小程序&#xff0d;进度条 先导&#xff1a; 1.如何利用/r,fflush(stdout)来实现我们想要的效果&#xff1b; 2.写一个倒计时&#xff1a; 进度条…

[数据集][目标检测]智慧交通铁路人员危险行为躺站坐检测数据集VOC+YOLO格式3766张4类别

图片数量(jpg文件个数)&#xff1a;3766 标注数量(xml文件个数)&#xff1a;3766 标注数量(txt文件个数)&#xff1a;3766 标注类别数&#xff1a;4 标注类别名称:["sitting","sleeping","standing","track"] 每个类别标注的框数&…

可解释性机器学习中的局部解释

可解释性机器学习可以被分成两大类&#xff0c;第一大类叫做局部的解释&#xff0c;第二大类叫做全局的 解释&#xff0c;如图 1 所示。局部的解释是&#xff0c;比如有一个图像分类器&#xff0c;输入一张图片&#xff0c;它会判断出 是一只猫&#xff0c;机器要回答问题是为什…

微分方程人口模型以及Matlab代码实现

马尔萨斯模型 模型假设 1.设x(t)表示t时刻的人口数,且x(t)连续可微。 2.人口的增长率r是常数(增长率出生率-死亡率)。 3.人口数量的变化是封闭的,即没有人口迁移&#xff0c;且人口数量的增加与减少只取决于人口中个体的生育和死亡,且每一个体都具有同样的生育能力与死亡率。…

Parallels Desktop 20 for Mac中文版发布了?会哪些新功能

Parallels Desktop 20 for Mac 正式发布&#xff0c;完全支持 macOS Sequoia 和 Windows 11 24H2&#xff0c;并且在企业版中引入了全新的管理门户。 据介绍&#xff0c;新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新&#xff0c;最大的亮点是全新推出的 Parallels…

项目升级必备!TS装饰器:简化代码、增加功能的利器 | TypeScript入门指南07

嘿&#xff0c;朋友&#xff01;听说过TS里的装饰器没&#xff1f;就像给代码加了个‘魔法贴’&#xff0c;轻轻一点&#xff0c;功能升级&#xff0c;结构清晰。这篇文章&#xff0c;咱们聊聊这背后的魔法是怎么一回事&#xff01; ts 入门指南系列 Ts vs Js 谁适合前端开发&a…