Laksanakan storan objek menggunakan Beego dan Aliyun OSS

王林
Lepaskan: 2023-06-22 09:47:48
asal
1234 orang telah melayarinya

Dengan kemunculan era digital, jumlah data terus meningkat, meletakkan permintaan yang lebih tinggi pada teknologi storan. Storan objek telah menjadi salah satu teknologi storan paling popular pada masa ini. Aliyun OSS (Perkhidmatan Penyimpanan Objek), sebagai perkhidmatan penyimpanan objek yang disediakan oleh Alibaba Cloud, mempunyai kelebihan ketara dalam kebolehpercayaan, keselamatan dan keberkesanan kos. Beego ialah rangka kerja aplikasi web ringan sumber terbuka berdasarkan bahasa Go. Ia menyediakan keupayaan untuk membina aplikasi web dan perkhidmatan API dengan cepat, dan juga menyokong akses kepada Aliyun OSS. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Beego dan Aliyun OSS untuk melaksanakan storan objek.

1. Persediaan untuk Aliyun OSS

1. Daftar akaun Alibaba Cloud dan aktifkan perkhidmatan OSS, dan dapatkan accessKeyId dan accessKeySecret.

2. Buat Baldi.

Bucket ialah bekas yang digunakan untuk menyimpan objek pada OSS, yang bersamaan dengan direktori atau folder. Mula-mula log masuk ke konsol Alibaba Cloud OSS, klik "Buat Ruang Storan", isikan nama dan wilayah serta maklumat lain, dan klik butang "Buat".

3. Muat naik fail dalam Baldi.

Jika tiada objek dalam Baldi, anda boleh memilih untuk memuat naik fail ujian untuk ujian pembangunan seterusnya.

2 Pemasangan dan konfigurasi rangka kerja Beego

1.

Masukkan arahan berikut pada baris arahan untuk memasang rangka kerja Beego:

go get github.com/astaxie/beego
Salin selepas log masuk

2. Pasang Aliyun OSS SDK for Go.

Masukkan arahan berikut pada baris arahan untuk memasang Aliyun OSS SDK for Go:

go get github.com/aliyun/aliyun-oss-go-sdk/oss
Salin selepas log masuk

3.

Dalam aplikasi Beego, anda perlu mengkonfigurasi parameter Aliyun OSS, termasuk accessKeyId, accessKeySecret, nama Bucket, nama domain OSS dan maklumat lain. Ia boleh dikonfigurasikan dalam fail conf/app.conf projek:

appname = test
httpport = 8080
runmode = dev

# Aliyun OSS配置
OSSAccessKeyId = <ACCESS_KEY_ID>
OSSAccessKeySecret = <ACCESS_KEY_SECRET>
OSSBucketName = <BUCKET_NAME>
OSSEndpoint = <OSS_ENDPOINT>
Salin selepas log masuk

Melalui konfigurasi di atas, parameter Aliyun OSS boleh dihantar ke aplikasi Beego.

3. Melaksanakan fungsi storan objek

Dalam aplikasi Beego, sangat mudah untuk menggunakan Aliyun OSS SDK for Go untuk melaksanakan fungsi storan objek. Mula-mula, anda perlu memperkenalkan Aliyun OSS SDK for Go dalam pengawal:

import (
    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)
Salin selepas log masuk

Kemudian, anda boleh melaksanakan fungsi muat naik fail melalui kod berikut:

func (c *MainController) Upload() {
    // 获取上传的文件
    file, header, err := c.GetFile("file")
    if err != nil {
        c.Ctx.WriteString("文件上传失败")
        return
    }
    defer file.Close()

    // 创建OSS客户端实例
    client, err := oss.New(c.AppConfig.String("OSSEndpoint"), c.AppConfig.String("OSSAccessKeyId"), c.AppConfig.String("OSSAccessKeySecret"))
    if err != nil {
        c.Ctx.WriteString("OSS客户端创建失败")
        return
    }

    // 获取存储空间
    bucket, err := client.Bucket(c.AppConfig.String("OSSBucketName"))
    if err != nil {
        c.Ctx.WriteString("存储空间获取失败")
        return
    }

    // 上传文件到存储空间
    err = bucket.PutObject(header.Filename, file)
    if err != nil {
        c.Ctx.WriteString("文件上传到OSS失败")
        return
    }

    c.Ctx.WriteString("文件上传成功")
}
Salin selepas log masuk

Dalam kod ini, kami mula-mula memperoleh melalui kaedah GetFile ke fail yang dimuat naik, kemudian buat contoh klien OSS, dapatkan ruang storan yang ditentukan, dan akhirnya gunakan kaedah PutObject untuk memuat naik fail ke ruang storan yang ditentukan. Jika muat naik berjaya, maklumat kejayaan akan dikembalikan.

4. Laksanakan fungsi muat turun objek

Selain memuat naik fail, aplikasi Beego juga boleh melaksanakan fungsi muat turun fail melalui Aliyun OSS SDK for Go. Kodnya adalah seperti berikut:

func (c *MainController) Download() {
    // 获取文件名
    filename := c.GetString("filename")
    if filename == "" {
        c.Ctx.WriteString("文件名不能为空")
        return
    }

    // 创建OSS客户端实例
    client, err := oss.New(c.AppConfig.String("OSSEndpoint"), c.AppConfig.String("OSSAccessKeyId"), c.AppConfig.String("OSSAccessKeySecret"))
    if err != nil {
        c.Ctx.WriteString("OSS客户端创建失败")
        return
    }

    // 获取存储空间
    bucket, err := client.Bucket(c.AppConfig.String("OSSBucketName"))
    if err != nil {
        c.Ctx.WriteString("存储空间获取失败")
        return
    }

    // 下载文件
    body, err := bucket.GetObject(filename)
    if err != nil {
        c.Ctx.WriteString("文件下载失败")
        return
    }
    defer body.Close()

    // 输出文件内容
    c.Ctx.Output.Body(body)
}
Salin selepas log masuk

Dalam kod ini, kita mula-mula mendapat nama fail, kemudian mencipta contoh klien OSS, mendapatkan ruang storan yang ditentukan, dan akhirnya menggunakan kaedah GetObject untuk mendapatkan kandungan yang ditentukan fail dan hantar output Output.Body Method kepada klien.

5. Ringkasan

Artikel ini memperkenalkan cara menggunakan rangka kerja Beego dan Aliyun OSS untuk melaksanakan fungsi storan objek. Melalui contoh kod ringkas, anda dapat melihat bahawa sangat mudah untuk melaksanakan fungsi storan objek menggunakan fungsi kaya yang disediakan oleh Beego dan kebolehpercayaan dan skalabiliti tinggi yang disediakan oleh Aliyun OSS. Untuk pembangun aplikasi web yang perlu menyimpan sejumlah besar fail, artikel ini menyediakan penyelesaian storan yang cekap dan menjimatkan yang boleh membantu pembangun meningkatkan prestasi dan pengalaman pengguna aplikasi web.

Atas ialah kandungan terperinci Laksanakan storan objek menggunakan Beego dan Aliyun OSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!