frostfs-s3-lifecycler/internal/lifecycle/dependencies.go
Denis Kirillov 1121da9d24 [#4] Support object expiration
Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
2024-07-26 14:52:19 +03:00

37 lines
1.1 KiB
Go

package lifecycle
import (
"context"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/data"
cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/netmap"
oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user"
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
"github.com/nspcc-dev/neo-go/pkg/util"
)
type UserFetcher interface {
Users() ([]util.Uint160, error)
UserKey(hash util.Uint160) (*keys.PublicKey, error)
}
type ContainerFetcher interface {
Containers(owner user.ID) ([]cid.ID, error)
}
type TreeFetcher interface {
GetBucketLifecycleConfiguration(ctx context.Context, bktInfo *data.BucketInfo) (oid.ID, error)
}
type FrostFSFetcher interface {
GetObject(ctx context.Context, addr oid.Address) (pool.ResGetObject, error)
NetworkInfo(ctx context.Context) (*netmap.NetworkInfo, error)
DeleteObject(ctx context.Context, addr oid.Address) error
}
type CredentialSource interface {
Credentials(ctx context.Context, pk *keys.PublicKey) (*keys.PrivateKey, error)
}