fix: S5ProviderStore cannot rely on S5Protocol, so we need to provide for it too
This commit is contained in:
parent
2887a63a7a
commit
98c1784518
|
@ -50,9 +50,7 @@ type S5ProtocolResult struct {
|
||||||
|
|
||||||
var S5ProtocolModule = fx.Module("s5_protocol",
|
var S5ProtocolModule = fx.Module("s5_protocol",
|
||||||
fx.Provide(NewS5Protocol),
|
fx.Provide(NewS5Protocol),
|
||||||
fx.Provide(func(protocol *S5Protocol) *S5ProviderStore {
|
fx.Provide(NewS5ProviderStore),
|
||||||
return &S5ProviderStore{proto: protocol}
|
|
||||||
}),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewS5Protocol(
|
func NewS5Protocol(
|
||||||
|
@ -69,6 +67,14 @@ func NewS5Protocol(
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewS5ProviderStore(config *viper.Viper, logger *zap.Logger, storage *storage.StorageServiceImpl) *S5ProviderStore {
|
||||||
|
return &S5ProviderStore{
|
||||||
|
config: config,
|
||||||
|
logger: logger,
|
||||||
|
storage: storage,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func InitS5Protocol(s5 *S5Protocol) error {
|
func InitS5Protocol(s5 *S5Protocol) error {
|
||||||
return s5.Init()
|
return s5.Init()
|
||||||
}
|
}
|
||||||
|
@ -159,7 +165,9 @@ func (s *S5Protocol) Node() s5interfaces.Node {
|
||||||
}
|
}
|
||||||
|
|
||||||
type S5ProviderStore struct {
|
type S5ProviderStore struct {
|
||||||
proto *S5Protocol
|
config *viper.Viper
|
||||||
|
logger *zap.Logger
|
||||||
|
storage *storage.StorageServiceImpl
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s S5ProviderStore) CanProvide(hash *encoding.Multihash, kind []types.StorageLocationType) bool {
|
func (s S5ProviderStore) CanProvide(hash *encoding.Multihash, kind []types.StorageLocationType) bool {
|
||||||
|
@ -168,13 +176,13 @@ func (s S5ProviderStore) CanProvide(hash *encoding.Multihash, kind []types.Stora
|
||||||
case types.StorageLocationTypeArchive, types.StorageLocationTypeFile, types.StorageLocationTypeFull:
|
case types.StorageLocationTypeArchive, types.StorageLocationTypeFile, types.StorageLocationTypeFull:
|
||||||
rawHash := hash.HashBytes()
|
rawHash := hash.HashBytes()
|
||||||
|
|
||||||
if exists, upload := s.proto.storage.TusUploadExists(rawHash); exists {
|
if exists, upload := s.storage.TusUploadExists(rawHash); exists {
|
||||||
if upload.Completed {
|
if upload.Completed {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if exists, _ := s.proto.storage.FileExists(rawHash); exists {
|
if exists, _ := s.storage.FileExists(rawHash); exists {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,7 +200,7 @@ func (s S5ProviderStore) Provide(hash *encoding.Multihash, kind []types.StorageL
|
||||||
case types.StorageLocationTypeArchive:
|
case types.StorageLocationTypeArchive:
|
||||||
return s5storage.NewStorageLocation(int(types.StorageLocationTypeArchive), []string{}, calculateExpiry(24*time.Hour)), nil
|
return s5storage.NewStorageLocation(int(types.StorageLocationTypeArchive), []string{}, calculateExpiry(24*time.Hour)), nil
|
||||||
case types.StorageLocationTypeFile, types.StorageLocationTypeFull:
|
case types.StorageLocationTypeFile, types.StorageLocationTypeFull:
|
||||||
return s5storage.NewStorageLocation(int(types.StorageLocationTypeFull), []string{generateDownloadUrl(hash, s.proto.config, s.proto.logger)}, calculateExpiry(24*time.Hour)), nil
|
return s5storage.NewStorageLocation(int(types.StorageLocationTypeFull), []string{generateDownloadUrl(hash, s.config, s.logger)}, calculateExpiry(24*time.Hour)), nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue