media

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Jun 29, 2022 License: MIT Imports: 16 Imported by: 0

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"` // rand file prefix for safe

	S3Mode bool `yaml:"s3_mode"` // enable s3 storage for files

	LocalDir string `yaml:"local_dir"` // local storage directory
	LocalURL string `yaml:"local_url"` // target url file prefix

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

	S3EndPoint string `yaml:"s3_end_point"` // provider api url, for example: s3.selcdn.ru
	S3Domain   string `yaml:"s3_domain"`    // storage domain, for example: https://56756.selcdn.ru
	S3Region   string `yaml:"s3_region"`    // for example: ru-1a
	S3Bucket   string `yaml:"s3_bucket"`    // 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

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