原因是文件服务存的文件越来越多,但是我的服务器只有20G磁盘,原来是打算只给博客用的,买了三年,加上使用fastapi写的,也还占点内存,打包下有100多MB
之前还好,最近因为存储不足影响其他服务(Blog),于是打算重写服务,新的服务用Go实现,打包的可执行文件小,省空间
把sqlite换掉换成自己写的持久化Slice,反正没什么压力,自己用,内存问题则是把本地存储换成阿里云OSS,9块钱一年,很不错!
先登陆阿里云购买Oss然后创建一个桶,再创建访问ID和密钥
接下来是模板代码
gogo get github.com/aliyun/aliyun-oss-go-sdk/oss
然后是操作基础代码,因为我是用的功能不多
gopackage main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func handleError(err error) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// 阿里云账号的 AccessKey ID 和 AccessKey Secret
accessKeyID := "your-access-key-id"
accessKeySecret := "your-access-key-secret"
// 阿里云 OSS 的 Endpoint
endpoint := "your-oss-endpoint"
// 阿里云 OSS 的 Bucket 名称
bucketName := "your-bucket-name"
// 创建 OSS 客户端
client, err := oss.New(endpoint, accessKeyID, accessKeySecret)
if err != nil {
handleError(err)
}
// 获取存储空间
bucket, err := client.Bucket(bucketName)
if err != nil {
handleError(err)
}
// 上传文件
objectName := "example-object"
filePath := "example-file.txt"
err = bucket.PutObjectFromFile(objectName, filePath)
if err != nil {
handleError(err)
}
fmt.Println("File uploaded successfully")
// 下载文件
downloadPath := "downloaded-file.txt"
err = bucket.GetObjectToFile(objectName, downloadPath)
if err != nil {
handleError(err)
}
fmt.Println("File downloaded successfully")
// 删除文件
err = bucket.DeleteObject(objectName)
if err != nil {
handleError(err)
}
fmt.Println("File deleted successfully")
}
本文作者:yowayimono
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!