目录

【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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
程序员勋勋12 分钟前
【GoLang】etcd初始化客户端时不会返回错误怎么办
后端·golang·etcd
愚润求学16 分钟前
Linux开发工具——gcc
linux·服务器·开发语言
科创未来20 分钟前
自动化备份全网服务器数据平台
服务器·自动化·github
照书抄代码25 分钟前
Linux中用gdb查看coredump文件
linux·运维·服务器
czhc114007566326 分钟前
Linux2 CD LL hostnamectl type mkdir dudo
运维·服务器
东方苾梦32 分钟前
Elixir语言的游戏音效
开发语言·后端·golang
ℳℓ白ℳℓ夜ℳℓ41 分钟前
Linux网络应用层自定义协议与序列化
linux·运维·服务器
江沉晚呤时1 小时前
如何深入理解C#中的备忘录模式(Memento Pattern)设计模式
运维·服务器·数据库·c#·.netcore
23zhgjx-hyh1 小时前
IS-IS认证
运维·服务器·网络
无名之逆1 小时前
在Rust生态中探索高性能HTTP服务器:Hyperlane初体验
运维·服务器·开发语言·后端·http·rust·自动化