阿里云对象存储OSS使用| 青训营

阿里云对象存储(OSS)实现文件存储

阿里云对象存储(OSS)是一种高可用、可扩展的云存储服务,适用于存储和管理大量的非结构化数据,如图片、音视频文件、备份数据等。在本文中,如何使用阿里云 OSS 实现文件存储?

我把他分成了几个步骤:

  • 步骤 1:创建阿里云账号并开通 OSS 服务
  • 步骤 2:创建存储空间(Bucket)
  • 步骤 3:获取访问凭证(Access Key)
  • 步骤 4:选择适当的 SDK 或工具
  • 步骤 5:使用 SDK 或工具进行文件操作
  • 步骤 6:上传下载玩一玩

1、创建阿里云账号并开通 OSS 服务

既然是使用别人阿里云的东西,那肯定得先注册有一个阿里云账号

  1. 登录阿里云控制台cn.aliyun.com/
  2. 如果没有阿里云账号,需要先注册一个账号。
  3. 登录后,进入控制台,通过导航栏找到"对象存储 OSS"服务,然后根据提示开通 OSS 服务。 注册登录后点击控制台 -> 左上角的菜单 ->对象存储OSS

2、创建存储空间(Bucket)

  1. 在 OSS 控制台中,点击"创建存储空间"按钮。
  2. 选择存储空间的名称和地域,通常选择距离你的用户或应用程序最近的地域以获得更低的延迟。
  3. 配置存储空间的访问权限,可以选择公共读权限或者私有权限,根据你的需求进行设置。

点击Bucket列表->添加Bucket 这几个名称、类型、权限就根据自己情况选选填填加加。

创建好后,是可以点击的,像这样

3、获取访问凭证(Access Key)

接下来,我们需要弄一个凭证AK,不是那个突突突的AK哈。我们需要这个凭证来给我们操作这个存储空间,点击新创建的存储空间我这里以上面图片的 xiaojin-devcloud-station 为例子

点击用户->创建用户,创建时要勾选OpenAPI调用访问,名字啊什么的也选选填填加加。

随后点击给用户添加权限

将下面这两个权限加入 AliyunOSSFullAccessAliyunOSSReadOnlyAccess

再点击用户,查看详细信息

把需要的AK保存下来

到这里,重要工作已经完成了。

4、选择适当的 SDK 或工具

我们这里选用go语言来操作。阿里云是有文档的

接下来我们玩一玩吧。

5、安装阿里云 OSS Go SDK

使用以下命令安装阿里云 OSS Go SDK:

bash 复制代码
go get github.com/aliyun/aliyun-oss-go-sdk/oss

6、编写代码

go 复制代码
package main

import (
	"fmt"
	"os"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// 配置 OSS 客户端
	// 替换为你的实际信息
	endpoint := "your_endpoint"
	accessKeyID := "your_access_key_id"
	accessKeySecret := "your_access_key_secret"
	bucketName := "your_bucket_name"

	// 初始化 OSS 客户端
	client, err := oss.New(endpoint, accessKeyID, accessKeySecret)
	if err != nil {
		fmt.Println("Error creating OSS client:", err)
		return
	}

	// 获取存储空间(Bucket)
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error getting bucket:", err)
		return
	}

	// 文件上传
	objectName := "example.jpg"
	localFilePath := "path_to_local_file/example.jpg"

	err = bucket.PutObjectFromFile(objectName, localFilePath)
	if err != nil {
		fmt.Println("Error uploading object:", err)
		return
	}
	fmt.Println("Object uploaded successfully!")

	// 文件下载
	downloadPath := "path_to_save_downloaded_file/downloaded_example.jpg"
	err = bucket.GetObjectToFile(objectName, downloadPath)
	if err != nil {
		fmt.Println("Error downloading object:", err)
		return
	}
	fmt.Println("Object downloaded successfully!")
}

运行代码 在终端中进入到你的 Go 项目目录,运行以下命令执行代码:

bash 复制代码
go run main.go

注意:确保将代码中的相关信息(例如 endpoint、accessKeyID、accessKeySecret、bucketName、文件路径等)替换为你自己阿里云 OSS 的实际信息。

endpoint在这里

总结

以上就是阿里云的OSS大概简单的使用了,注意在开发时不要把AK等key上传到远程仓库哦,要不然你也会跟我一样出现

使用 Go 语言实现阿里云对象存储(OSS)的文件存储功能是非常方便的。通过以上步骤,你可以轻松地在你的 Go 项目中集成阿里云 OSS,实现文件的上传和下载功能。在实际应用中,不要忘记适当地处理错误以及设置文件的权限以确保数据的安全性。

在实际开发中会比较复杂还要配置环境变量啊等等东西。

相关推荐
滑滑滑2 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬2 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户967136399652 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记
用户52975799354723 天前
字节跳动青训营刷题笔记2| 豆包MarsCode AI刷题
青训营笔记
clearcold3 天前
浅谈对LangChain中Model I/O的见解 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵3 天前
【字节青训营】 Go 进阶语言:并发概述、Goroutine、Channel、协程池 | 豆包MarsCode AI刷题
青训营笔记
用户336901104444 天前
数字分组求和题解 | 豆包MarsCode AI刷题
青训营笔记
dnxb1234 天前
GO语言工程实践课后作业:实现思路、代码以及路径记录 | 豆包MarsCode AI刷题
青训营笔记
用户916357440954 天前
AI刷题-动态规划“DNA序列编辑距离” | 豆包MarsCode AI刷题
青训营笔记
热的棒打鲜橙4 天前
数字分组求偶数和 | 豆包MarsCode AI刷题
青训营笔记