【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

相关推荐
可乐大数据12 分钟前
Docker安装(基于云服务器ECS实例 CentOS 7.9系统)
服务器·docker·centos
菲兹园长20 分钟前
微服务组件(E、L、N、O、G)
linux·服务器·gateway
LBuffer1 小时前
破解入门学习笔记题二十五
服务器·前端·microsoft
richxu202510011 小时前
Linux本地部署deepseek大模型之 6. Windows本地连接远程云服务器中的MySQL常见错误的解决办法
linux·服务器·windows
Ryan ZX1 小时前
Ubuntu 升级OpenSSH10.2p1与OpenSSL3.5.4版本避坑实践
linux·运维·服务器·ubuntu
Yeats_Liao2 小时前
Go Web 编程快速入门 18 - 附录B:查询与扫描
开发语言·前端·后端·golang
小八四爱吃甜食2 小时前
【R语言】构建GO、KEGG相关不同物种的R包
开发语言·golang·r语言
唐兴通个人2 小时前
新品上市咨询顾问新药上市顾问培训讲师唐兴通讲PMF从0到1天使用户种子用户冷启动问题
运维·服务器
serve the people3 小时前
Partial Prompt Templates in LangChain
服务器·langchain·prompt
七夜zippoe3 小时前
高性能网络编程实战:用Tokio构建自定义协议服务器
linux·服务器·网络·rust·tokio