当前位置: 首页 > news >正文

【云存储】使用OSS快速搭建个人网盘教程(阿里云)

使用OSS快速搭建个人网盘

  • 一、基础概要
    • 1. 主要的存储类型
      • 1.1 块存储
      • 1.2 文件存储
      • 1.3 对象存储
    • 2. 对象存储OSS
      • 2.1 存储空间
      • 2.2 地域
      • 2.3 对象
      • 2.4 读写权限
      • 2.5 访问域名(Endpoint)
      • 2.6 访问密钥
      • 2.7 常用功能
        • (1)创建存储空间
        • (2)上传文件
        • (3)列举文件
        • (4)搜索文件
        • (5)分享文件
        • (6)下载文件
        • (7)删除文件
      • 2.8 资源访问方式
    • 3. 个人网盘架构
      • 3.1 Cloudreve
      • 3.2 ossfs
  • 二、基于OSS快速搭建个人网站
    • 1. 登录OSS控制台
    • 2. 创建OSS Bucket
    • 3. 安装Cloudreve
      • 3.1 下载安装包
      • 3.2 解压
      • 3.3 授权
      • 3.4 验证Cloudreve
    • 4. 安装ossfs
      • 4.1 下载ossfs
      • 4.2 安装ossfs
        • 4.2.1 删除过期.repo
      • 4.3 安装ossfs
      • 4.4 配置ossfs
    • 5. 挂载OSS Bucket
      • 5.1 创建挂载点
      • 5.2 手动挂载OSS Bucket
      • 5.3 设置开机自动挂载
    • 6. 配置个人网盘
      • 6.1 运行Cloudreve
      • 6.2 配置Cloudreve
        • 6.2.1 配置存储策略
        • 6.2.2 配置用户组
        • 6.2.3 上传文件
        • 6.2.4 OSS验证结果


一、基础概要

1. 主要的存储类型

不管是本地存储还是在云环境中,都有三种主要的存储类型: 块存储、文件存储和对象存储。

1.1 块存储

块存储是一种将数据存储为固定大小块的数据存储方式。

块存储将数据分成多个块,每个块的大小通常是固定的,比如4KB、8KB、16KB等。

块存储的数据结构相对固定,无法进行自由的调整。
块存储通常用于文件系统、关系型数据库等领域,常常用于存储大量的数据,以提高数据读写效率。

块存储的优势在于存储效率较高,可以快速存储和检索数据

1.2 文件存储

文件存储是一种将数据存储为文件的数据存储方式。

文件存储将数据分成多个文件,每个文件可以包含多个数据块。文件存储通常用于存储大量的数据,可以通过文件系统等方式进行管理和访问。

文件存储的优势在于可以灵活地管理和访问数据,并且可以支持大规模的数据存储和管理

在这里插入图片描述

1.3 对象存储

对象存储是一种新型的云存储服务,它将数据存储为对象的形式,可以更好地满足大量非结构化数据存储和管理的需求。

对象存储将数据分为多个层次,每个层次都有自己的命名空间和属性。每个对象都有一个唯一的标识符,可以通过这个标识符访问和管理数据。

对象存储经济高效,是一个非常适用于静态数据的存储系统,其灵活性和扁平性意味着它可以通过扩展来存储极大量的数据。对象具有足够的信息供应用快速查找数据,并且擅长存储非结构化数据。

2. 对象存储OSS

2.1 存储空间

用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间,提供了标准存储、低频访问存储、归档存储、冷归档存储等存储类型。

个人网盘频繁的进行文件上传、下载、分享等操作;个人网盘需要频繁的进行文件上传、下载、分享等操作,该实验我们选择使用“标准存储”。

标准存储适用于各种社交、分享类的图片、音视频应用、大型网站、大数据分析等业务场景。

2.2 地域

OSS的数据中心所在物理位置。

阿里云地域选择可以遵循就近原则,优先选择更靠近用户群的地域节点。本实验地域优先选择“华东2(上海)” 。

在这里插入图片描述

2.3 对象

对象是OSS存储数据的基本单元,也被称为OSS的文件。

在个人网盘场景中,Object为存放在对象存储OSS Bucket中的照片文件、文本文件、视频文件等。

2.4 读写权限

通过Bucket ACL权限列表与权限描述,本实验设置Bucket ACL权限为私有,Bucket的拥有者可以对该Bucket内的文件进行读写操作,其他人无法访问该Bucket内的文件。

2.5 访问域名(Endpoint)

OSS对外服务的访问域名,Endpoint格式为:
外网Endpoint是oss-{Region}.aliyuncs.com
内网Endpoint是oss-{Region}-internal.aliyuncs.com

通过OSS内网地址访问OSS资源时,不收取流量费用。个人网盘场景中ECS实例部署的网盘软件可以调用OSS内网Endpoint。

2.6 访问密钥

简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。

OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求的发送者身份,可通过控制台创建AccessKey

AccessKey的来源有:

1、Bucket的拥有者申请的AccessKey。
2、被Bucket的拥有者通过RAM授权给第三方请求者的AccessKey。
3、被Bucket的拥有者通过STS授权给第三方请求者的AccessKey。

了解Endpoint和Accesskey的概念后,在使用SDK或工具时,需要配置访问域名(Endpoint)和访问密钥(Accesskey)。

2.7 常用功能

(1)创建存储空间

根据实际需求,创建不同类型的存储空间来存储不同的数据;

(2)上传文件

上传文件到OSS前,必须先在阿里云的任意一个地域创建一个存储空间。

创建存储空间后,您可以上传任意文件到该存储空间。有简单上传、分片上传、追加上传等方式;

在这里插入图片描述

(3)列举文件

Object上传成功后,默认按照字母序排列。可以列举出当前Bucket的所有Object、指定前缀的Object、指定个数的Object等;

(4)搜索文件

Object上传成功之后,可以通过搜索文件或者文件夹的方式进行搜索,快速查找目标文件;

(5)分享文件

文件上传至存储空间后,您可以将文件URL分享给第三方,供其下载或预览;

(6)下载文件

当文件(Object)上传至存储空间(Bucket)后,您可以将文件下载至浏览器默认路径或本地指定路径;

(7)删除文件

可以一次删除单个或者多个文件、碎片等。您可以定期删除过期文件,节省您的存储空间。

在这里插入图片描述

2.8 资源访问方式

阿里云对象存储OSS提供了多种访问及操作OSS资源的方式:阿里云控制台、OSS提供的工具、OSS提供的SDK。

在这里插入图片描述

3. 个人网盘架构

本实验使用ECS安装Cloudreve提供网盘服务,OSS提供存储服务。

当用户使用个人网盘时,访问部署Cloudreve ECS的公网IP地址即可完成文件上传、下载、删除、分享等服务。

在这里插入图片描述

3.1 Cloudreve

Cloudreve可快速构建出兼备自用或公用的网盘服务,通过多种存储策略的支持、虚拟文件系统等特性实现灵活的文件管理体验。

3.2 ossfs

ossfs能让您在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中,能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。

二、基于OSS快速搭建个人网站

1. 登录OSS控制台

在阿里云台首页点击创建资源,会生成如下内容,AK ID和AK Secret

在这里插入图片描述

创建好之后,默认进入如下命令行界面,我们选择右侧的远程桌面

在这里插入图片描述

进入远程桌面后,单击桌面Chromium Web Browser图标,打开浏览器会自动打开阿里云RAM用户登录页面。

在这里插入图片描述

在登录界面输入刚刚生成资源中的用户名

在这里插入图片描述

输入密码

在这里插入图片描述

完成RAM用户登录后,然后单击浏览器阿里云控制台首页页面左上角图标

搜索框输入"OSS",单击搜索结果中的对象存储OSS,进入OSS管理控制台。

在这里插入图片描述

已经进入OSS管理控制台

在这里插入图片描述

2. 创建OSS Bucket

在OSS管理控制台,选择Bucket列表,单击创建Bucket,进行Bucket的创建。

在这里插入图片描述
创建Bucket时,填入Bucket名称,选择正确的地域,其它参数使用默认值,单击确认完成Bucket的创建。

这里名称我用九芒星的英文

ninemangstars

地域根据最开始生成的资源,找到对应的地域

在这里插入图片描述

个人网盘场景中需要和ECS实例处于同一个地域。这里用的上海

在这里插入图片描述

3. 安装Cloudreve

提交之后,在实验页面右侧导航栏,单击图标,切换至Web Terminal。

在这里插入图片描述

3.1 下载安装包

执行如下命令,下载cloudreve安装包。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/cloudreve_3.3.1_linux_amd64.tar.gz

wget 是Linux系统用于从Web下载文件的命令行工具。wget加上需要下载文件的链接,即可完成文件的下载。

在这里插入图片描述

返回结果如下所示,即完成cloudreve安装包的下载。

在这里插入图片描述

3.2 解压

下载完毕后,执行如下命令,解压cloudreve安装包。

tar -zxvf cloudreve_3.3.1_linux_amd64.tar.gz

tar是Linux系统用于解压与压缩命令,解压参数中

z表示配合解压.gz类型的压缩包
x表示解压缩
v表示显示解压缩详细信息
f表示被处理文件。

返回结果如下所示,即完成cloudreve安装包的解压。

在这里插入图片描述

3.3 授权

执行如下命令,给cloudreve授予权限。

chmod +x ./cloudreve

chmod用于改变文件或目录的访问权限,+x表示赋予可执行权限,下一步需要运行cloudreve程序,所以必须赋予cloudreve可执行权限。

执行如下命令,运行cloudreve。

./cloudreve

返回结果如下所示,可以看到初始管理员账号、初始管理员密码和监听端口。

初始密码是随机生成的,这需要记录初始管理员账号、密码和端口,后面会用到

在这里插入图片描述

初始管理员账号:admin@cloudreve.org
初始管理员密码:7jx2gsnr
开始监听 :5212

3.4 验证Cloudreve

网盘访问时,需要使用到公网IP,故需要获取ECS实例的公网地址。

通过实验室左侧导航栏,点击云产品资源,通过ECS云服务器下方弹性IP选项获取。

在这里插入图片描述

在本地浏览器中,打开,访问http://<ECS公网地址>:<cloudreve监听端口>

http://47.103.110.136:5212

进入登录页

在这里插入图片描述

依次输入初始化管理员账号和初始化管理员密码,单击登录。

在这里插入图片描述

登录成功

在这里插入图片描述

可以看到,后台接收到登录的日志

在终端中按下Ctrl+C键,停止cloudreve运行。

在这里插入图片描述

4. 安装ossfs

ossfs可以在Linux系统中,将对象存储OSS的存储空间(Bucket)挂载到本地文件系统中

能够像操作本地文件一样操作OSS的对象(Object),实现数据的共享。

在本实验场景中通过ossfs挂载OSS Bucket到ECS实例中,作为个人网盘的存储使用。

4.1 下载ossfs

执行如下命令,下载ossfs安装包。

wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos8.0_x86_64.rpm

在这里插入图片描述

下载完用ls来查看是否下载成功

在这里插入图片描述

4.2 安装ossfs

这里用到yum安装

yum是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。

能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

在本场景中我们需要安装ossfs软件,在安装ossfs过程中通过yum可以自动下载和安装ossfs软件的依赖软件包。

实验环境ECS系统为Centos 8,由于Centos8 yum官方源下线,需要更换为阿里云yum源。

4.2.1 删除过期.repo

先删除系统内过期的.repo文件

rm -f /etc/yum.repos.d/*

然后下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

在这里插入图片描述

最后运行 yum makecache 生成缓存

yum clean all && yum makecache

最终完成yum源的更换
在这里插入图片描述

4.3 安装ossfs

使用yum命令安装ossfs时
yum install xx.rpm表示为安装xx.rpm软件包
-y参数表示安装过程中自动选择yes

回车,安装

yum install -y ./ossfs_1.80.6_centos8.0_x86_64.rpm

执行安装命令后返回结果显示Complete!表示ossfs安装成功。

在这里插入图片描述

4.4 配置ossfs

首先要获取到OSS Bucket和AccessKey ID和AccessKey Secret信息。

名字在OSS控制台可以看到,我用的九芒星英文

nine-mangstars

ID和KEY可以在最开始生成的资源中找到

在这里插入图片描述

执行下列命令,将Bucket名称以及具有此Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。

echo nine-mangstars:LTAIEGhXytkJ8tmA:GVOL1mQPdcnJ23dKStnaY6mz3cl8DH > /etc/passwd-ossfs

在这里插入图片描述

执行如下命令,给passwd-ossfs文件授予权限。

注意:后续挂载OSS Bucket阶段,需要使用passwd-ossfs中的AccessKeyId和AccessKeySecret去验证是否具有passwd-ossfs文件中Bucket的权限。

chmod 640 /etc/passwd-ossfs

5. 挂载OSS Bucket

5.1 创建挂载点

执行如下命令,创建一个名为oss文件夹

mkdir oss

在这里插入图片描述

5.2 手动挂载OSS Bucket

执行如下命令

将Bucket挂载到指定目录/root/oss,

ossfs nine-mangstars /root/oss -o url=oss-cn-shanghai-internal.aliyuncs.com

OSS的ECS的经典网络访问(内网)的Endpoint,可在Bucket列表>>Bucket概览>>访问端口中查看(也就是url后面的内容)

在这里插入图片描述

查看是否挂载成功

df -h

返回如下则说明挂载成功

在这里插入图片描述

5.3 设置开机自动挂载

执行如下命令,在/etc/init.d/目录下建立文件ossfs

设置ECS开机自动启动脚本进行OSS Bucket自动挂载。
进入Vim编辑器。

vim /etc/init.d/ossfs

在编辑器模式中粘贴这段脚本

其中最后一行的Bucket名字和url要换成自己的

#! /bin/bash
#
# ossfs      Automount Aliyun OSS Bucket in the specified direcotry.
#
# chkconfig: 2345 90 10
# description: Activates/Deactivates ossfs configured to start at boot time.ossfs nine-mangstars /root/oss -o url=oss-cn-shanghai-internal.aliyuncs.com -oallow_other

粘贴

在这里插入图片描述

保存后:wq退出

执行如下命令,为新建立的ossfs脚本赋予可执行权限。

chmod a+x /etc/init.d/ossfs

执行如下命令,把ossfs启动脚本作为其他服务,开机自动启动。

chkconfig ossfs on

6. 配置个人网盘

6.1 运行Cloudreve

执行如下命令,运行cloudreve。

./cloudreve

在这里插入图片描述

6.2 配置Cloudreve

配置cloudreve主要是对存储策略进行配置,并将存储策略与用户组进行绑定。

存储策略定义了文件的存储平台、上传和功能限制。用户组与存储策略绑定,此用户组下的用户将共享同一个存储策略。

首先切换为远程登录cloudreve。打开浏览器,访问

http://47.103.110.136:5212

说明:通过云产品资源列表查看ECS的公网地址
http://<ECS公网地址>:<cloudreve监听端口>

输入之前随机生成的账号和密码

在这里插入图片描述

在cloudreve主界面右上角,单击管理面板。

在这里插入图片描述

在确定站点URL设置对话框中,单击更改。

在这里插入图片描述

6.2.1 配置存储策略

在左侧导航栏中,单击存储策略,添加存储策略

在这里插入图片描述

选择本机存储

在这里插入图片描述

在添加本机存储策略的上传路径页面中,将存储目录修改为

/root/oss/uploads/{uid}/{path}

/root/oss为oss Bucket的挂载点。

然后默认下一步

在这里插入图片描述

在添加本机存储策略的直链设置页面中,单击下一步。

在这里插入图片描述

在添加本机存储策略的上传限制页面中,单击下一步。

在这里插入图片描述

在添加本机存储策略的完成页面中,输入存储策略名OSS,单击完成。

在这里插入图片描述

6.2.2 配置用户组

在左侧导航栏中,单击用户组,管理员编辑

在这里插入图片描述

在编辑管理员页面的存储策略中,选择oss,然后单击保存

在这里插入图片描述

6.2.3 上传文件

返回主页后,任意上传一个文件到个人网盘

在这里插入图片描述

6.2.4 OSS验证结果

切换到命令行界面,可以看到刚刚上传的文件

在这里插入图片描述

然后再次回到远程桌面

https://oss.console.aliyun.com/

在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。

在左侧导航栏中,单击Bucket列表。找到创建的Bucket,单击Bucket名称。

在这里插入图片描述

在文件列表页面,根据云产品资源列表中的Object路径,单击对应的文件夹名称,在文件名为1的文件夹下存放着刚刚上传的文件

在这里插入图片描述

即CSDN九芒星.txt

在这里插入图片描述

相关文章:

【云存储】使用OSS快速搭建个人网盘教程(阿里云)

使用OSS快速搭建个人网盘 一、基础概要1. 主要的存储类型1.1 块存储1.2 文件存储1.3 对象存储 2. 对象存储OSS2.1 存储空间2.2 地域2.3 对象2.4 读写权限2.5 访问域名&#xff08;Endpoint&#xff09;2.6 访问密钥2.7 常用功能&#xff08;1&#xff09;创建存储空间&#xff…...

微信小程序iconfont真机渲染失败

解决方法&#xff1a; 1.将下载的.woff文件在transfonter转为base64&#xff0c; 2.打开网站&#xff0c;导入文件&#xff0c;开启base64按钮&#xff0c;下载转换后的文件 3. 在下载解压后的文件夹中找到stylesheet.css&#xff0c;并复制其中的base64 4. 修改index.wxss文…...

万界星空/推出生产制造执行MES系统/开源MES/免费下载

免费MES系统介绍 什么是MES系统呢&#xff1f;MES系统主要功能就是解决“如何生产”的问题。通过实施MES系统&#xff0c;一站式解决您所困扰的所有生产制作流程问题。 普通的免费MES系统只提供简单的基本功能让客户体验&#xff0c;而万界星空MES系统运用低代码的形式开发&a…...

【VxWorks】Vxworks、QNX、Xenomai、Intime、Sylixos、Ucos等实时操作系统的性能特点

目录 1.VxWorks操作系统 2.QNX操作系统 3.Xenomai操作系统 4.INtime操作系统 5.SylixOS操作系统 5.1.SylixOS官网...

17、YML配置文件及让springboot启动时加载我们自定义的yml配置文件的几种方式

YML配置文件及加载自定义配置文件的几种方式 ★ YAML配置文件 其实本质和.properties文件的是一样的。 Spring Boot默认使用SnakeYml工具来处理YAML配置文件&#xff0c;SnakeYml工具默认就会被spring-boot-starter导入&#xff0c;因此无需开发者做任何额外配置。 YAML本质…...

18、springboot默认的配置文件及导入额外配置文件

springboot默认的配置文件及导入额外配置文件 ★ Spring Boot默认加载的配置文件&#xff1a; (1) 类加载路径&#xff08;resources目录&#xff09;application.properties|yml &#xff08;相当于JAR包内&#xff09;optional: classpath:/ &#xff08;2&#xff09;类加…...

Conda换源(Linux)

目录 一、相关命令 1.添加软件包渠道 2.查看已添加的渠道 3.删除不想要的渠道 4.显示从哪个渠道安装软件包 二、添加其他源 1.添加conda源 2.添加tuna源 3.添加ali源 一、相关命令 1.添加软件包渠道 conda config --add channels conda-forge 2.查看已添加的渠道 …...

【C语言学习】数据类型转换

一、自动类型转换 1.当运算符两边的数据类型不同时&#xff0c;C语言会帮我们将其转换为较大的类型。即将数据转换成表达范围更大的类型。 将前一种类型转换为后一种类型 char --> short --> int --> long --> long long int --> float --> double2.对于…...

深入了解PostgreSQL:高级查询和性能优化技巧

在当今数据驱动的世界中&#xff0c;数据库的性能和查询优化变得尤为重要。 POSTGRESQL作为一种开源的关系型数据库管理系统&#xff0c;在处理大规模数据和复杂查询时表现出色。 但随着数据量和查询复杂性的增加&#xff0c;性能问题可能会显现出来。 本文将深入探讨POSTGR…...

【C#学习笔记】值类型(1)

虽然拥有编程基础的人可以很快地上手C#&#xff0c;但是依然需要学习C#的特性和基础。本系列是本人学习C#的笔记&#xff0c;完全按照微软官方文档编写&#xff0c;但是不适合没有编程基础的人。 文章目录 .NET 体系结构Hello&#xff0c;World类型和变量&#xff08;重要&…...

二十三种设计模式第二十二篇--中介者模式

说到这个模式就有趣了&#xff0c;不知道大家在生活中喷到过中介没&#xff1f;其实中介这个词吧&#xff0c;我也说不上好还是坏&#xff0c;有时候他可以帮助人们更快的达到某个目的&#xff0c;但有的时候吧&#xff0c;这个有贼坑人&#xff0c;相信网络上有各种被中介坑的…...

小研究 - 微服务系统服务依赖发现技术综述(二)

微服务架构得到了广泛的部署与应用, 提升了软件系统开发的效率, 降低了系统更新与维护的成本, 提高了系统的可扩展性. 但微服务变更频繁、异构融合等特点使得微服务故障频发、其故障传播快且影响大, 同时微服务间复杂的调用依赖关系或逻辑依赖关系又使得其故障难以被及时、准确…...

javaee 泛型的上下边界和通配符的使用

下边界 package com.test.generic;import java.util.Collection;public class TestGenericClass {//泛型方法 ? extends E :泛型的限定public static <E> void move(Collection<E> from,Collection<? super E> to){for(E e:from){to.add(e);}}public st…...

【TypeScript】类型声明及应用(二)

【TypeScript】类型声明及应用&#xff08;二&#xff09; 一、前言 TypeScript开发中需要对定义的变量指定类型&#xff0c;目前版本都支持哪些类型&#xff0c;每一个类型都有哪些含义&#xff0c;在这篇文章中&#xff0c;我们将会对其进行总结说明 二、JavaScript基本数据…...

rust from_utf8_lossy怎么使用?

from_utf8_lossy 是Rust标准库中的一个方法&#xff0c;用于将字节序列解码为UTF-8字符串。它的作用是尽可能地将无效的字节序列转换为有效的Unicode字符&#xff0c;以便进行后续处理。 以下是使用 from_utf8_lossy 方法的示例代码&#xff1a; fn main() {let bytes b"…...

#P0997. [NOIP2006普及组] 数列

题目描述 给定一个正整数k(3≤k≤15)k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列&#xff0c;例如&#xff0c;当k3k3时&#xff0c;这个序列是&#xff1a; 1,3,4,9,10,12,13,…1,3,4,9,10,12,13,… &#xff08;该序列实际上就是&…...

做完两年外包,感觉自己废了一半....

先说一下自己的情况。大专生&#xff0c;17年通过校招进入湖南某软件公司&#xff0c;干了接近2年的点点点&#xff0c;今年年上旬&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01;而我已经在一个企业干了五年的功能测试…...

Kubernetes系列-Ingress

1 Ingress 概述 Kubernetes 对外暴露服务&#xff08;Service&#xff09;主要有两种方式&#xff1a;NodePort&#xff0c;LoadBalance&#xff0c;此外 externalIps 也可以使各类 service 对外提供服务&#xff0c;但是当集群服务很多的时候&#xff0c;NodePort方式最大的缺…...

软件测试之Docker常见问题汇总!附解决方法!

1、配置国内源进行docker安装&#xff0c;报错 HTTP Error 404 - Not Found 【整整200集】超超超详细的Python接口自动化测试进阶教程&#xff0c;真实模拟企业项目实战&#xff01;&#xff01; 原因&#xff1a; 由于配置国内镜像源时&#xff0c;把地址写错了&#xff0c;导…...

Python-操作Excel表-openpyxl模块使用

openpyxl简介 openpyxl是一个强大的Python库,用于读写Excel(xlsx/xlsm/xltx/xltm)文件。 主要功能和特点如下: 读取、修改、写入Excel文件,支持格式如xlsx、xlsm等支持 Excel 2003 以上格式可以很方便地遍历工作表中的行和列获取单元格对象后,可以修改单元格的值、样式、格式…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...