MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / GetEntitySource

Method GetEntitySource

pkg/filemanager/manager/entity.go:315–346  ·  view source on GitHub ↗
(ctx context.Context, entityID int, opts ...fs.Option)

Source from the content-addressed store, hash-verified

313}
314
315func (m *manager) GetEntitySource(ctx context.Context, entityID int, opts ...fs.Option) (entitysource.EntitySource, error) {
316 o := newOption()
317 for _, opt := range opts {
318 opt.Apply(o)
319 }
320
321 var (
322 entity fs.Entity
323 err error
324 )
325
326 if o.Entity != nil {
327 entity = o.Entity
328 } else {
329 entity, err = m.fs.GetEntity(ctx, entityID)
330 if err != nil {
331 return nil, err
332 }
333
334 if entity.ReferenceCount() == 0 {
335 return nil, fs.ErrEntityNotExist
336 }
337 }
338
339 policy, handler, err := m.getEntityPolicyDriver(ctx, entity, o.Policy)
340 if err != nil {
341 return nil, err
342 }
343
344 return entitysource.NewEntitySource(entity, handler, policy, m.auth, m.settings, m.hasher, m.dep.RequestClient(), m.l,
345 m.config, m.dep.MimeDetector(ctx), m.dep.EncryptorFactory(ctx), entitysource.WithContext(ctx), entitysource.WithThumb(o.IsThumb)), nil
346}
347
348func (l *manager) SetCurrentVersion(ctx context.Context, path *fs.URI, version int) error {
349 indexDiff, err := l.fs.VersionControl(ctx, path, version, false)

Callers 5

ListArchiveFilesMethod · 0.95
compressFileToArchiveMethod · 0.95
ThumbnailMethod · 0.95

Calls 11

getEntityPolicyDriverMethod · 0.95
NewEntitySourceFunction · 0.92
WithContextFunction · 0.92
WithThumbFunction · 0.92
newOptionFunction · 0.85
ApplyMethod · 0.65
GetEntityMethod · 0.65
ReferenceCountMethod · 0.65
RequestClientMethod · 0.65
MimeDetectorMethod · 0.65
EncryptorFactoryMethod · 0.65

Tested by

no test coverage detected