Documentation
¶
Index ¶
- func AccessMethodsFromAuthPathMap(auth models.AuthPathMap) []drs.AccessMethod
- func CandidateToInternalObject(c drs.DrsObjectCandidate, now time.Time) (models.InternalObject, error)
- func FirstSupportedAccessURL(obj *models.InternalObject) string
- func GetBaseURL(ctx context.Context) string
- func InternalObjectToInternalRecord(obj models.InternalObject) internalapi.InternalRecord
- func InternalObjectToInternalRecordResponse(obj models.InternalObject) internalapi.InternalRecordResponse
- func InternalRecordToInternalObject(r internalapi.InternalRecord, now time.Time) (models.InternalObject, error)
- func LFSCandidateToDRS(in lfsapi.DrsObjectCandidate) drs.DrsObjectCandidate
- func MergeInternalObjectUpdate(existing models.InternalObject, update models.InternalObject, id string, ...) (models.InternalObject, error)
- func S3KeyFromInternalObjectForBucket(obj *models.InternalObject, bucket string) (string, bool)
- func UniqueAuthz(accessMethods []drs.AccessMethod) map[string][]string
- func WithBaseURL(ctx context.Context, baseURL string) context.Context
- type ObjectManager
- func (m *ObjectManager) BulkDeleteObjects(ctx context.Context, ids []string) error
- func (m *ObjectManager) BulkUpdateAccessMethods(ctx context.Context, updates map[string][]drs.AccessMethod) error
- func (m *ObjectManager) CompleteMultipartUpload(ctx context.Context, bucket, key, uploadID string, ...) error
- func (m *ObjectManager) CreateBucketScope(ctx context.Context, scope *models.BucketScope) error
- func (m *ObjectManager) CreateObjectAlias(ctx context.Context, aliasID, canonicalID string) error
- func (m *ObjectManager) DeleteBulkByScope(ctx context.Context, organization, project string) (int, error)
- func (m *ObjectManager) DeleteObject(ctx context.Context, id string) error
- func (m *ObjectManager) DeleteS3Credential(ctx context.Context, bucket string) error
- func (m *ObjectManager) GetBulkObjects(ctx context.Context, ids []string) ([]models.InternalObject, error)
- func (m *ObjectManager) GetObject(ctx context.Context, ident string, requiredMethod string) (*models.InternalObject, error)
- func (m *ObjectManager) GetObjectsByChecksum(ctx context.Context, checksum string) ([]models.InternalObject, error)
- func (m *ObjectManager) GetObjectsByChecksums(ctx context.Context, hashes []string) (map[string][]models.InternalObject, error)
- func (m *ObjectManager) GetPendingLFSMeta(ctx context.Context, oid string) (*models.PendingLFSMeta, error)
- func (m *ObjectManager) GetS3Credential(ctx context.Context, bucket string) (*models.S3Credential, error)
- func (m *ObjectManager) GetServiceInfo(ctx context.Context) (*drs.Service, error)
- func (m *ObjectManager) InitMultipartUpload(ctx context.Context, bucket, key string) (string, error)
- func (m *ObjectManager) ListBucketScopes(ctx context.Context) ([]models.BucketScope, error)
- func (m *ObjectManager) ListObjectIDsByScope(ctx context.Context, organization, project string) ([]string, error)
- func (m *ObjectManager) ListS3Credentials(ctx context.Context) ([]models.S3Credential, error)
- func (m *ObjectManager) PopPendingLFSMeta(ctx context.Context, oid string) (*models.PendingLFSMeta, error)
- func (m *ObjectManager) RecordDownload(ctx context.Context, id string) error
- func (m *ObjectManager) RecordProviderTransferEvents(ctx context.Context, events []models.ProviderTransferEvent) error
- func (m *ObjectManager) RecordTransferAttributionEvents(ctx context.Context, events []models.TransferAttributionEvent) error
- func (m *ObjectManager) RecordUpload(ctx context.Context, id string) error
- func (m *ObjectManager) RegisterBulk(ctx context.Context, candidates []drs.DrsObjectCandidate) (int, error)
- func (m *ObjectManager) RegisterObjects(ctx context.Context, objs []models.InternalObject) error
- func (m *ObjectManager) ResolveBucket(ctx context.Context, bucketName string) (string, error)
- func (m *ObjectManager) ResolveObjectRemotePath(ctx context.Context, objectID string, bucket string) (string, bool)
- func (m *ObjectManager) SavePendingLFSMeta(ctx context.Context, entries []models.PendingLFSMeta) error
- func (m *ObjectManager) SaveS3Credential(ctx context.Context, cred *models.S3Credential) error
- func (m *ObjectManager) SignDownloadPart(ctx context.Context, bucket, accessURL string, start, end int64, ...) (string, error)
- func (m *ObjectManager) SignMultipartPart(ctx context.Context, bucket, key, uploadID string, partNum int32) (string, error)
- func (m *ObjectManager) SignURL(ctx context.Context, accessURL string, options urlmanager.SignOptions) (string, error)
- func (m *ObjectManager) UpdateObjectAccessMethods(ctx context.Context, objectID string, accessMethods []drs.AccessMethod) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AccessMethodsFromAuthPathMap ¶ added in v0.2.5
func AccessMethodsFromAuthPathMap(auth models.AuthPathMap) []drs.AccessMethod
func CandidateToInternalObject ¶
func CandidateToInternalObject(c drs.DrsObjectCandidate, now time.Time) (models.InternalObject, error)
CandidateToInternalObject converts a DRS registration candidate to our internal domain model.
func FirstSupportedAccessURL ¶
func FirstSupportedAccessURL(obj *models.InternalObject) string
FirstSupportedAccessURL returns the first URL from an object that Syfon can sign.
func GetBaseURL ¶
GetBaseURL retrieves the base URL from the context.
func InternalObjectToInternalRecord ¶
func InternalObjectToInternalRecord(obj models.InternalObject) internalapi.InternalRecord
InternalObjectToInternalRecord converts our internal domain model back to an API record.
func InternalObjectToInternalRecordResponse ¶
func InternalObjectToInternalRecordResponse(obj models.InternalObject) internalapi.InternalRecordResponse
InternalObjectToInternalRecordResponse converts our internal domain model back to an API response.
func InternalRecordToInternalObject ¶
func InternalRecordToInternalObject(r internalapi.InternalRecord, now time.Time) (models.InternalObject, error)
InternalRecordToInternalObject converts an index/internal record to our internal domain model.
func LFSCandidateToDRS ¶
func LFSCandidateToDRS(in lfsapi.DrsObjectCandidate) drs.DrsObjectCandidate
LFSCandidateToDRS converts an LFS-specific candidate to a DRS-generic one.
func MergeInternalObjectUpdate ¶
func MergeInternalObjectUpdate(existing models.InternalObject, update models.InternalObject, id string, now time.Time) (models.InternalObject, error)
MergeInternalObjectUpdate merges an update into an existing object.
func S3KeyFromInternalObjectForBucket ¶
func S3KeyFromInternalObjectForBucket(obj *models.InternalObject, bucket string) (string, bool)
S3KeyFromInternalObjectForBucket extracts a key for a specific bucket from an object.
func UniqueAuthz ¶
func UniqueAuthz(accessMethods []drs.AccessMethod) map[string][]string
UniqueAuthz merges authorizations from all access methods into a single map.
Types ¶
type ObjectManager ¶
type ObjectManager struct {
// contains filtered or unexported fields
}
ObjectManager standardizes object lifecycle operations across all API surfaces.
func NewObjectManager ¶
func NewObjectManager(db db.DatabaseInterface, uM urlmanager.UrlManager) *ObjectManager
func (*ObjectManager) BulkDeleteObjects ¶
func (m *ObjectManager) BulkDeleteObjects(ctx context.Context, ids []string) error
func (*ObjectManager) BulkUpdateAccessMethods ¶ added in v0.2.5
func (m *ObjectManager) BulkUpdateAccessMethods(ctx context.Context, updates map[string][]drs.AccessMethod) error
func (*ObjectManager) CompleteMultipartUpload ¶
func (m *ObjectManager) CompleteMultipartUpload(ctx context.Context, bucket, key, uploadID string, parts []urlmanager.MultipartPart) error
func (*ObjectManager) CreateBucketScope ¶
func (m *ObjectManager) CreateBucketScope(ctx context.Context, scope *models.BucketScope) error
func (*ObjectManager) CreateObjectAlias ¶
func (m *ObjectManager) CreateObjectAlias(ctx context.Context, aliasID, canonicalID string) error
func (*ObjectManager) DeleteBulkByScope ¶ added in v0.2.5
func (m *ObjectManager) DeleteBulkByScope(ctx context.Context, organization, project string) (int, error)
DeleteBulkByScope removes all objects matching an organization/project scope after verifying permissions.
func (*ObjectManager) DeleteObject ¶
func (m *ObjectManager) DeleteObject(ctx context.Context, id string) error
func (*ObjectManager) DeleteS3Credential ¶
func (m *ObjectManager) DeleteS3Credential(ctx context.Context, bucket string) error
func (*ObjectManager) GetBulkObjects ¶
func (m *ObjectManager) GetBulkObjects(ctx context.Context, ids []string) ([]models.InternalObject, error)
func (*ObjectManager) GetObject ¶
func (m *ObjectManager) GetObject(ctx context.Context, ident string, requiredMethod string) (*models.InternalObject, error)
GetObject retrieves an internal object by ID, Alias, or Checksum and validates access.
func (*ObjectManager) GetObjectsByChecksum ¶
func (m *ObjectManager) GetObjectsByChecksum(ctx context.Context, checksum string) ([]models.InternalObject, error)
Pass-through operations to DB
func (*ObjectManager) GetObjectsByChecksums ¶
func (m *ObjectManager) GetObjectsByChecksums(ctx context.Context, hashes []string) (map[string][]models.InternalObject, error)
func (*ObjectManager) GetPendingLFSMeta ¶
func (m *ObjectManager) GetPendingLFSMeta(ctx context.Context, oid string) (*models.PendingLFSMeta, error)
func (*ObjectManager) GetS3Credential ¶
func (m *ObjectManager) GetS3Credential(ctx context.Context, bucket string) (*models.S3Credential, error)
func (*ObjectManager) GetServiceInfo ¶
func (*ObjectManager) InitMultipartUpload ¶
func (*ObjectManager) ListBucketScopes ¶
func (m *ObjectManager) ListBucketScopes(ctx context.Context) ([]models.BucketScope, error)
func (*ObjectManager) ListObjectIDsByScope ¶ added in v0.2.5
func (*ObjectManager) ListS3Credentials ¶
func (m *ObjectManager) ListS3Credentials(ctx context.Context) ([]models.S3Credential, error)
func (*ObjectManager) PopPendingLFSMeta ¶
func (m *ObjectManager) PopPendingLFSMeta(ctx context.Context, oid string) (*models.PendingLFSMeta, error)
func (*ObjectManager) RecordDownload ¶
func (m *ObjectManager) RecordDownload(ctx context.Context, id string) error
func (*ObjectManager) RecordProviderTransferEvents ¶ added in v0.2.5
func (m *ObjectManager) RecordProviderTransferEvents(ctx context.Context, events []models.ProviderTransferEvent) error
func (*ObjectManager) RecordTransferAttributionEvents ¶ added in v0.2.5
func (m *ObjectManager) RecordTransferAttributionEvents(ctx context.Context, events []models.TransferAttributionEvent) error
func (*ObjectManager) RecordUpload ¶
func (m *ObjectManager) RecordUpload(ctx context.Context, id string) error
func (*ObjectManager) RegisterBulk ¶
func (m *ObjectManager) RegisterBulk(ctx context.Context, candidates []drs.DrsObjectCandidate) (int, error)
RegisterBulk saves multiple internal objects as a single logical operation.
func (*ObjectManager) RegisterObjects ¶
func (m *ObjectManager) RegisterObjects(ctx context.Context, objs []models.InternalObject) error
func (*ObjectManager) ResolveBucket ¶
ResolveBucket validates a bucket name or returns the default one.
func (*ObjectManager) ResolveObjectRemotePath ¶
func (m *ObjectManager) ResolveObjectRemotePath(ctx context.Context, objectID string, bucket string) (string, bool)
ResolveObjectRemotePath returns the key for an object in a specific bucket.
func (*ObjectManager) SavePendingLFSMeta ¶
func (m *ObjectManager) SavePendingLFSMeta(ctx context.Context, entries []models.PendingLFSMeta) error
func (*ObjectManager) SaveS3Credential ¶
func (m *ObjectManager) SaveS3Credential(ctx context.Context, cred *models.S3Credential) error
func (*ObjectManager) SignDownloadPart ¶
func (m *ObjectManager) SignDownloadPart(ctx context.Context, bucket, accessURL string, start, end int64, options urlmanager.SignOptions) (string, error)
func (*ObjectManager) SignMultipartPart ¶
func (*ObjectManager) SignURL ¶
func (m *ObjectManager) SignURL(ctx context.Context, accessURL string, options urlmanager.SignOptions) (string, error)
SignURL generates a signed URL for an object's access method.
func (*ObjectManager) UpdateObjectAccessMethods ¶ added in v0.2.5
func (m *ObjectManager) UpdateObjectAccessMethods(ctx context.Context, objectID string, accessMethods []drs.AccessMethod) error