【oss】阿里云oss服务器模拟

文章目录

  • [1 测试服务器搭建](#1 测试服务器搭建)
  • [2 go sdk demo编写](#2 go sdk demo编写)
    • [2.1 本地文件上传至oss](#2.1 本地文件上传至oss)
    • [2.2 oss文件下载至本地](#2.2 oss文件下载至本地)
  • [3 Reference](#3 Reference)

1 测试服务器搭建

  1. ruby环境

    sudo apt-get update
    sudo apt-get install ruby
    ruby --version

  2. 依赖

    sudo gem install thor builder

  3. 拉取项目
    https://github.com/aliyun/oss-emulator

  4. 启动服务

    cd oss-emulator
    ruby bin/emulator -r store -p 9999

  5. 创建bucket

    ossutil mb oss://bucket -e http://192.168.56.128:9999
    ossutil -e http://192.168.56.128:9999 -i AccessKeyId -k AccessKeySecret ls oss://bucket

2 go sdk demo编写

2.1 本地文件上传至oss

go 复制代码
func main() {
	// 创建OSSClient实例。
	client, err := oss.New("http://192.168.56.128:9999", "AccessKeyId", "AccessKeySecret")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucket, err := client.Bucket("bucket")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 完整路径 例如将本地文件D:\upload\file.txt 上传至 upload/file.txt。
	err = bucket.PutObjectFromFile("upload/file.txt", "D:\\upload\\file.txt")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

2.2 oss文件下载至本地

go 复制代码
func main() {
	// 创建OSSClient实例。
	client, err := oss.New("http://192.168.56.128:9999", "AccessKeyId", "AccessKeySecret")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	bucket, err := client.Bucket("bucket")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 完整路径 例如将文件upload/file.txt下载至本地D:\upload\file.txt。
	err = bucket.GetObjectToFile("upload/file.txt", "D:\\upload\\file.txt")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

3 Reference

OSS服务模拟器:https://github.com/aliyun/oss-emulator

ossutil文档:https://help.aliyun.com/zh/oss/developer-reference/overview-59

sdk demo文档:https://help.aliyun.com/zh/oss/developer-reference/streaming-download-5

相关推荐
Johny_Zhao1 天前
OpenClaw中级到高级教程
linux·人工智能·信息安全·kubernetes·云计算·yum源·系统运维·openclaw
Johny_Zhao3 天前
centos7安装部署openclaw
linux·人工智能·信息安全·云计算·yum源·系统运维·openclaw
茶杯梦轩4 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
Johny_Zhao6 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
NineData6 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
YuMiao6 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
Sinclair9 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean10 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩10 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
花酒锄作田11 天前
Gin 框架中的规范响应格式设计与实现
golang·gin