mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 04:14:39 +03:00
Add filesystem based blob storage (#3187)
* Refactor transaction hooks. Add preCommit * Add BlobStore * Use blobStore for tag images * Use blobStore for studio images * Use blobStore for performer images * Use blobStore for scene covers * Don't generate screenshots in legacy directory * Run post-hooks outside original transaction * Use blobStore for movie images * Remove unnecessary DestroyImage methods * Add missing filter for scene cover * Add covers to generate options * Add generate cover option to UI * Add screenshot migration * Delete thumb files as part of screenshot migration
This commit is contained in:
@@ -12,10 +12,15 @@ import (
|
||||
"github.com/stashapp/stash/pkg/utils"
|
||||
)
|
||||
|
||||
type ImageUpdater interface {
|
||||
UpdateFrontImage(ctx context.Context, movieID int, frontImage []byte) error
|
||||
UpdateBackImage(ctx context.Context, movieID int, backImage []byte) error
|
||||
}
|
||||
|
||||
type NameFinderCreatorUpdater interface {
|
||||
NameFinderCreator
|
||||
UpdateFull(ctx context.Context, updatedMovie models.Movie) (*models.Movie, error)
|
||||
UpdateImages(ctx context.Context, movieID int, frontImage []byte, backImage []byte) error
|
||||
ImageUpdater
|
||||
}
|
||||
|
||||
type Importer struct {
|
||||
@@ -126,8 +131,14 @@ func (i *Importer) createStudio(ctx context.Context, name string) (int, error) {
|
||||
|
||||
func (i *Importer) PostImport(ctx context.Context, id int) error {
|
||||
if len(i.frontImageData) > 0 {
|
||||
if err := i.ReaderWriter.UpdateImages(ctx, id, i.frontImageData, i.backImageData); err != nil {
|
||||
return fmt.Errorf("error setting movie images: %v", err)
|
||||
if err := i.ReaderWriter.UpdateFrontImage(ctx, id, i.frontImageData); err != nil {
|
||||
return fmt.Errorf("error setting movie front image: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
if len(i.backImageData) > 0 {
|
||||
if err := i.ReaderWriter.UpdateBackImage(ctx, id, i.backImageData); err != nil {
|
||||
return fmt.Errorf("error setting movie back image: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -162,8 +162,9 @@ func TestImporterPostImport(t *testing.T) {
|
||||
|
||||
updateMovieImageErr := errors.New("UpdateImages error")
|
||||
|
||||
readerWriter.On("UpdateImages", testCtx, movieID, frontImageBytes, backImageBytes).Return(nil).Once()
|
||||
readerWriter.On("UpdateImages", testCtx, errImageID, frontImageBytes, backImageBytes).Return(updateMovieImageErr).Once()
|
||||
readerWriter.On("UpdateFrontImage", testCtx, movieID, frontImageBytes).Return(nil).Once()
|
||||
readerWriter.On("UpdateBackImage", testCtx, movieID, backImageBytes).Return(nil).Once()
|
||||
readerWriter.On("UpdateFrontImage", testCtx, errImageID, frontImageBytes).Return(updateMovieImageErr).Once()
|
||||
|
||||
err := i.PostImport(testCtx, movieID)
|
||||
assert.Nil(t, err)
|
||||
|
||||
Reference in New Issue
Block a user