Documentation
¶
Index ¶
- func CreateAccessKey(schema string, bucket string, key string) string
- func DropInvalidObjectFiles(schema string, bucket string) error
- func DropObjectsBeforeInterval(duration time.Duration) error
- func GetObjectContent(obj *S3Object) ([]byte, error)
- func HandleDeleteObject(c echo.Context) error
- func HandleGetObject(c echo.Context) error
- func HandleGetObjectInfo(c echo.Context) error
- func HandleListObjects(c echo.Context) error
- func HandlePutObject(c echo.Context) error
- func MakeUrl(schema string, bucket string, key string) string
- func RemoveObject(schema string, bucket string, key string)
- func RemoveObjectById(schema string, id uint)
- func S3ObjectHandler(next echo.HandlerFunc) echo.HandlerFunc
- func SetupEchoGroup(group *echo.Group) *echo.Group
- func SetupFileStorage(db *gorm.DB, dir string, secret string)
- func SetupMongoStorage(db *gorm.DB, mdb *mongo.Database, secret string)
- type S3Object
- type S3Server
- func (s *S3Server) DropInvalidObjectFiles(schema string, bucket string) error
- func (s *S3Server) DropObjectsBeforeInterval(duration time.Duration) error
- func (s *S3Server) GetDB() *gorm.DB
- func (s *S3Server) GetObject(schema string, bucket string, key string) (*S3Object, error)
- func (s *S3Server) GetObjectById(schema string, id uint) (*S3Object, error)
- func (s *S3Server) GetObjectContent(obj *S3Object) ([]byte, error)
- func (s *S3Server) PutObject(schema string, bucket string, key string, filename string, src io.Reader) (*S3Object, error)
- func (s *S3Server) RemoveObject(schema string, bucket string, key string)
- func (s *S3Server) RemoveObjectById(schema string, id uint)
- type Tags
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DropInvalidObjectFiles ¶
func GetObjectContent ¶
func HandleDeleteObject ¶
func HandleDeleteObject(c echo.Context) error
@Summary Delete an object from S3 @Tags Objects @ID delete-object @Accept json @Produce json @Security Bearer @Param bucket path string true "S3 objet bucket" default() @Param key path string true "S3 object key" default() @Success 204 @Failure 401 {object} echo.HTTPError "Unauthorized" @Failure 500 {object} echo.HTTPError "Internal server error" @Router /s3/objects/{bucket}/{key} [DELETE]
func HandleGetObject ¶
func HandleGetObject(c echo.Context) error
@Summary Download an object from S3 @Tags Objects @ID download-object @Accept json @Produce octet-stream @Security Bearer @Param bucket path string true "S3 objet bucket" default() @Param key path string true "S3 object key" default() @Param token query string true "Token for the object" @Success 200 {object} nil "Empty response" @Failure 401 {object} echo.HTTPError "Unauthorized" @Failure 500 {object} echo.HTTPError "Internal server error" @Router /s3/objects/{bucket}/{key} [GET]
func HandleGetObjectInfo ¶
func HandleGetObjectInfo(c echo.Context) error
@Summary Get information for an object from S3 @Tags Objects @ID get-object-info @Accept json @Produce json @Security Bearer @Param bucket path string true "S3 objet bucket" default() @Param key path string true "S3 object key" default() @Success 200 {object} s3.S3Object "Object information" @Failure 401 {object} echo.HTTPError "Unauthorized" @Failure 500 {object} echo.HTTPError "Internal server error" @Router /s3/objects/{bucket}/{key}/info [GET]
func HandleListObjects ¶
func HandleListObjects(c echo.Context) error
@Summary List objects @Tags Objects @ID list-objects @Accept json @Produce json @Param page query int false "Page" default(1) @Param page_size query int false "Page size" default(20) @Param order_by query string false "Sort order" default() @Param q query string false "Query" default() @Security Bearer @Success 200 {object} listS3ObjectsData"List of objects" @Failure 401 {object} echo.HTTPError "Unauthorized" @Failure 500 {object} echo.HTTPError "Internal server error" @Router /s3/objects [GET]
func HandlePutObject ¶
func HandlePutObject(c echo.Context) error
@Summary Put an object to S3 @Tags Objects @ID put-object @Accept multipart/form-data @Produce json @Param bucket path string true "S3 objet bucket" default() @Param key path string true "S3 object key" default() @Param file formData file true "File to upload" @Security Bearer @Success 200 {object} s3.S3Object "Object information" @Failure 400 {object} echo.HTTPError "Bad request" @Failure 500 {object} echo.HTTPError "Internal server error" @Router /s3/objects/{bucket}/{key} [POST]
func RemoveObject ¶
func RemoveObjectById ¶
func S3ObjectHandler ¶
func S3ObjectHandler(next echo.HandlerFunc) echo.HandlerFunc
func SetupEchoGroup ¶
func SetupEchoGroup(group *echo.Group) *echo.Group
@title S3 API @version 1.0 @host dev.netdoop.com @BasePath /api/v1 @schemes http @securityDefinitions.apikey Bearer @in header @name Authorization @description Type "Bearer" followed by a space and JWT token.
Types ¶
type S3Object ¶
type S3Object struct { ID uint `json:"Id" gorm:"primarykey"` Updated jsontype.JSONTime `json:"Updated" gorm:"autoUpdateTime"` Created jsontype.JSONTime `json:"Created" gorm:"autoCreateTime"` Deleted gorm.DeletedAt `json:"Deleted" gorm:"index"` Schema string `json:"Schema" gorm:"uniqueIndex:idx_s3_object_unique"` Bucket string `json:"Bucket" gorm:"uniqueIndex:idx_s3_object_unique"` Key string `json:"Key" gorm:"uniqueIndex:idx_s3_object_unique"` FileName string `json:"FileName"` FileSize int64 `json:"FileSize"` Signature string `json:"Signature"` SignMethod string `json:"SignMethod"` MetaDataRaw jsontype.JSONType[*Tags] `json:"-" gorm:"column:meta_data"` MetaData *Tags `json:"MetaData" gorm:"-"` DownloadUrl string `json:"DownloadUrl" gorm:"-"` }
type S3Server ¶
type S3Server struct {
// contains filtered or unexported fields
}