Попытка исправления загрузки локального блоба
This commit is contained in:
14
api.go
14
api.go
@@ -487,6 +487,13 @@ func (ag *Agate) RegisterLocalSnapshot(ctx context.Context, snapshotID, parentID
|
||||
}
|
||||
|
||||
// 2. Add the file to the blob store
|
||||
// Check if blob already exists. If so, we assume it's the correct one and skip overwriting.
|
||||
// This is to prevent issues when registering a file that is already in the blob store.
|
||||
_, err = ag.options.BlobStore.GetBlobPath(ctx, snapshotID)
|
||||
if err == nil {
|
||||
ag.options.Logger.Printf("blob for snapshot %s already exists, skipping storing it", snapshotID)
|
||||
} else if errors.Is(err, models.ErrNotFound) {
|
||||
// Blob does not exist, so we store it.
|
||||
localFile, err := os.Open(localPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to open local snapshot file: %w", err)
|
||||
@@ -497,10 +504,13 @@ func (ag *Agate) RegisterLocalSnapshot(ctx context.Context, snapshotID, parentID
|
||||
}
|
||||
}()
|
||||
|
||||
_, err = ag.options.BlobStore.StoreBlob(ctx, snapshotID, localFile)
|
||||
if err != nil {
|
||||
if _, err = ag.options.BlobStore.StoreBlob(ctx, snapshotID, localFile); err != nil {
|
||||
return fmt.Errorf("failed to store blob from local file: %w", err)
|
||||
}
|
||||
} else {
|
||||
// Another error occurred when checking for the blob.
|
||||
return fmt.Errorf("failed to check for existing blob: %w", err)
|
||||
}
|
||||
|
||||
// 3. Create and save snapshot metadata
|
||||
// We get the file list from the archive to create the metadata.
|
||||
|
||||
Reference in New Issue
Block a user