s3sdk

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2023 License: MIT Imports: 11 Imported by: 0

README

Go Client SDK for S3 Cloud Storage

This SDK uses minIo pkg (github.com/minio/minio-go/v7) to connect to MinIo and Yandex Cloud object stores.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DataBaseConfig

type DataBaseConfig struct {
	Host     string
	Port     string
	NameDB   string
	Username string
	Password string
	ModeSSL  string
}

type ObjectInfo

type ObjectInfo struct {
	UploadObjectInfo
	// UUID файла
	Uuid string
	// Полный путь к файлу. Example: /data/file1.png
	ObjectPath string
	// Дата загрузки файла
	UploadDate time.Time
}

Инфомария о файле

type ObjectType

type ObjectType string
const (
	NoNameType ObjectType = "application/noname"
	PdfType    ObjectType = "application/pdf"
	FmuType    ObjectType = "application/fmu"
	JpgType    ObjectType = "image/jpeg"
	PngType    ObjectType = "image/png"
)

type Repository

type Repository interface {
	AddFileInfo(uuid string, objInfo *ObjectInfo) error
	GetFileInfo(uuid string) (objInfo *ObjectInfo, err error)
	DeleteFile(uuid string)
}

type S3

type S3 struct {
	// contains filtered or unexported fields
}

func Connect

func Connect(s3cfg *S3Config, dbcfg *DataBaseConfig) (*S3, error)

func (*S3) DeleteObject

func (s3 *S3) DeleteObject(uuid string) (*ObjectInfo, error)

Удаление обЪекта. Возвращает информацию об удаленном объекте.

func (*S3) DownloadObject

func (s3 *S3) DownloadObject(uuid string) (io.ReadCloser, *ObjectInfo, error)

Скачивание обЪекта

func (*S3) GetListObjects

func (s3 *S3) GetListObjects(path string) ([]minio.ObjectInfo, error)

Получение списока объектов из s3 по заданному пути

func (*S3) UploadObject

func (s3 *S3) UploadObject(obj io.Reader, info *UploadObjectInfo) (*ObjectInfo, error)

Загрузка объекта

type S3Config

type S3Config struct {
	// Адрес подключения. Examle: "play.min.io"
	Endpoint string
	// Использование SSL.
	SSL bool
	// Регион подключения. Позволяет выделить ближайшее к серверу хранилище. Examle: "ru-central1"
	SigningRegion   string
	AccessKeyID     string
	SecretAccessKey string
	// Имя подключаемого бакета.
	BacketName string
}

type UploadObjectInfo

type UploadObjectInfo struct {
	// Расширение файла
	ObjectType ObjectType
	// Размер файла в байтах
	ObjectSize int64
	// (Опционально) ID пользователя загрузившего файл
	UserId int64
	// (Опционально) ID проекта к которому принадлежит файл
	ProjectId int64
}

Информация для загрузки файла

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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