66 lines
1.5 KiB
Go
66 lines
1.5 KiB
Go
// Copyright 2023 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
|
//go:build plus
|
|
|
|
package oss
|
|
|
|
import (
|
|
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ossconfigs"
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
|
|
"net/http"
|
|
)
|
|
|
|
type Provider struct {
|
|
rawProvider ProviderInterface
|
|
uniqueId string
|
|
UpdatedAt int64
|
|
}
|
|
|
|
func NewProvider(rawProvider ProviderInterface) *Provider {
|
|
return &Provider{
|
|
rawProvider: rawProvider,
|
|
UpdatedAt: fasttime.Now().Unix(),
|
|
}
|
|
}
|
|
|
|
func (this *Provider) Init(options ossconfigs.OSSOptions, bucketName string) error {
|
|
return this.rawProvider.Init(options, bucketName)
|
|
}
|
|
|
|
func (this *Provider) SetUniqueId(uniqueId string) {
|
|
this.uniqueId = uniqueId
|
|
}
|
|
|
|
func (this *Provider) UniqueId() string {
|
|
return this.uniqueId
|
|
}
|
|
|
|
func (this *Provider) Head(key string) (resp *http.Response, nativeErrCode string, err error) {
|
|
this.UpdatedAt = fasttime.Now().Unix()
|
|
|
|
if len(key) == 0 {
|
|
return nil, "", errNotFound
|
|
}
|
|
|
|
return this.rawProvider.Head(key)
|
|
}
|
|
|
|
func (this *Provider) Get(key string) (resp *http.Response, nativeErrCode string, err error) {
|
|
this.UpdatedAt = fasttime.Now().Unix()
|
|
|
|
if len(key) == 0 {
|
|
return nil, "", errNotFound
|
|
}
|
|
|
|
return this.rawProvider.Get(key)
|
|
}
|
|
|
|
func (this *Provider) GetRange(key string, bytesRange string) (resp *http.Response, nativeErrCode string, err error) {
|
|
this.UpdatedAt = fasttime.Now().Unix()
|
|
|
|
if len(key) == 0 {
|
|
return nil, "", errNotFound
|
|
}
|
|
|
|
return this.rawProvider.GetRange(key, bytesRange)
|
|
}
|