使用go进行云存储上传实现实例

 更新时间:2024年01月04日 14:41:25   作者:pkg6  
这篇文章主要为大家介绍了使用go进行云存储上传实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>

关于 About Flysystem

Flysystem是Golang的一个文件存储库。它提供了一个与多种类型的文件系统交互的接口。当您使用Flysystem时,您不仅可以免受供应商锁定,还可以获得始终如一的存储体验。

安装 Install

安装命令

$ go get github.com/pkg6/go-flysystem

示例 example

package main
import (
    "fmt"
    "github.com/pkg6/go-flysystem"
    "github.com/pkg6/go-flysystem/local"
    "strings"
)
func main() {
    //Define the root directory of the local adapter
    root := "./_example/test_data"
    // Create local adapter
    localAdapter := local.New(&local.Config{Root: root})
    //Initialize the adapter
    adapters := flysystem.NewAdapters(localAdapter)
    adapters.Extend(local.New(&local.Config{Root: "./_example/test_data/2"}), "local2")
    var err error
    _, err = adapters.WriteReader("4.txt", strings.NewReader("test"))
    fmt.Println(err)
    adapter, err := adapters.Adapter("local2")
    _, err = adapter.WriteReader("4.txt", strings.NewReader("test"))
    fmt.Println(err)
    //Write file
    _, err = adapters.Write("1.txt", []byte("test data"))
    fmt.Println(err)
    //Write data from resource file
    _, err = adapters.WriteStream("2.txt", root+"/1.txt")
    fmt.Println(err)
    //Update file
    _, err = adapters.Update("1.txt", []byte("test update data"))
    fmt.Println(err)
    //Update data from resource file
    _, err = adapters.UpdateStream("2.txt", root+"/1.txt")
    fmt.Println(err)
    exists, _ := adapters.Exists("2.txt")
    fmt.Println(exists)
    //Read file
    read, err := adapters.Read("2.txt")
    fmt.Println(read, err)
    //Get file mime type
    mimeType, err := adapters.MimeType("2.txt")
    fmt.Println(mimeType, err)
    //Get file size
    size, err := adapters.Size("2.txt")
    fmt.Println(size, err)
    //Move file
    _, err = adapters.Move("1.txt", "4.txt")
    fmt.Println(err)
    //Copy file
    _, err = adapters.Copy("2.txt", "5.txt")
    fmt.Println(err)
}

You can always create an adapter yourself.

由此你可以创建自己的适配器了。

本文译自  https://github.com/pkg6/go-flysystem

以上就是使用go进行云存储上传实现实例的详细内容,更多关于go云存储上传的资料请关注脚本之家其它相关文章!

相关文章

  • Go Gin框架路由相关bug分析

    Go Gin框架路由相关bug分析

    这篇文章主要为大家介绍了Go Gin框架路由相关bug分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • 深入理解 Go 语言中的 Context

    深入理解 Go 语言中的 Context

    这篇文章主要介绍了 理解 Go 语言中的 Context,需要的朋友可以参考下
    2020-06-06
  • Go泛型之泛型约束示例详解

    Go泛型之泛型约束示例详解

    这篇文章主要给大家介绍了关于Go泛型之泛型约束的相关资料,泛型是静态语言中的一种编程方式,这种编程方式可以让算法不再依赖于某个具体的数据类型,而是通过将数据类型进行参数化,以达到算法可复用的目的,需要的朋友可以参考下
    2023-12-12
  • GO语言实现标题闪烁效果

    GO语言实现标题闪烁效果

    这篇文章主要介绍了GO语言实现标题闪烁效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Go panic的三种产生方式细节探究

    Go panic的三种产生方式细节探究

    这篇文章主要介绍了Go panic的三种产生方式细节探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Go使用httptest包进行高效HTTP测试的流程步骤

    Go使用httptest包进行高效HTTP测试的流程步骤

    本文主要介绍了Go语言中`httptest`包的使用,该包通过内存级HTTP通信解决了传统测试方法的三大痛点,文章详细解析了`httptest`包的核心组件,包括测试服务器和响应记录器,并提供了基础使用模式、进阶使用技巧和配置参数详解,需要的朋友可以参考下
    2025-05-05
  • 如何基于Golang实现Kubernetes边车模式

    如何基于Golang实现Kubernetes边车模式

    本文介绍了如何基于Go实现Kubernetes Sidecar模式,并通过实际示例演示创建Golang实现的微服务服务、Docker 容器化以及在 Kubernetes 上的部署和管理,感兴趣的朋友一起看看吧
    2024-08-08
  • golang判断net.Conn 是否已关闭的操作

    golang判断net.Conn 是否已关闭的操作

    这篇文章主要介绍了golang判断net.Conn 是否已关闭的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • golang爬虫colly 发送post请求

    golang爬虫colly 发送post请求

    本文主要介绍了golang爬虫colly 发送post请求实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 解决golang sync.Wait()不执行的问题

    解决golang sync.Wait()不执行的问题

    这篇文章主要介绍了解决golang sync.Wait()不执行的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论