media

package module
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2022 License: MIT Imports: 16 Imported by: 0

README

media

s3 and local storage

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client interface {
	// Put returns link {Domain}/{Bucket}/{Category}/{RandPrefix}/{Filename}
	Put(ctx context.Context, category, filename string, size int64, body io.Reader) (link string, err error)
	// PutFile is alias Put with opening local file
	PutFile(ctx context.Context, category, filepath string) (link string, err error)
	// PutData is alias Put
	PutData(ctx context.Context, category, filename string, data []byte) (link string, err error)
	// PutImage ...
	PutImage(
		ctx context.Context, category, filename string, img image.Image, typ ImageType) (link string, err error)
	// PutMultipartThumbnail ...
	PutMultipartThumbnail(
		ctx context.Context, category string,
		file *multipart.FileHeader, typ ImageType, maxPixelSize uint) (link string, err error)
}

Client of S3 storage

For opening use func Open

func Open

func Open(ctx context.Context, conf Config) (Client, error)

Open local or s3 storage

required fields:

for remote storage: AccessKey, SecretKey, Region, EndPoint, Domain, Bucket

for local storage: Local, LocalDir, LocalURL, Bucket (optional)

type Config

type Config struct {
	RandPrefixLen int `yaml:"rand_prefix_len" desc:"rand file prefix for safe"`

	Local    bool   `yaml:"local" desc:"enable local storage for files"`
	LocalDir string `yaml:"local_dir" desc:"local storage directory"`
	LocalURL string `yaml:"local_url" desc:"target url file prefix"`

	S3AccessKey string `yaml:"s3_access_key" desc:"access key or login or user, for example: 32423_goservice"`
	S3SecretKey string `yaml:"s3_secret_key" desc:"secret key or password"`
	S3AuthToken string `yaml:"s3_auth_token" desc:"optional"`

	S3EndPoint string `yaml:"s3_end_point" desc:"provider api url, for example: s3.selcdn.ru"`
	S3Domain   string `yaml:"s3_domain" desc:"storage domain, for example: https://56756.selcdn.ru"`
	S3Region   string `yaml:"s3_region" desc:"for example: ru-1a"`
	S3Bucket   string `yaml:"s3_bucket" desc:"service bucket root, for example: goservice"`
	S3Insecure bool   `yaml:"s3_insecure"`
}

Config for local storage or s3 connection

func (*Config) ValidAndRepair

func (c *Config) ValidAndRepair() error

ValidAndRepair config

type ImageType

type ImageType int
const (
	ImageJPG ImageType = iota
	ImagePNG
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL