Storage: add WithContents option to storage.Get() (#53105)
* Storage: add `WithContents` option to `storage.Get()` * fix tests Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
This commit is contained in:
co-authored by
Ryan McKinley
parent
fc348e6279
commit
7a340f486b
@@ -334,7 +334,7 @@ func (s *standardStorageService) Upload(ctx context.Context, user *user.SignedIn
|
||||
grafanaStorageLogger.Info("uploading a file", "path", req.Path)
|
||||
|
||||
if !req.OverwriteExistingFile {
|
||||
file, err := root.Store().Get(ctx, storagePath)
|
||||
file, _, err := root.Store().Get(ctx, storagePath, &filestorage.GetFileOptions{WithContents: false})
|
||||
if err != nil {
|
||||
grafanaStorageLogger.Error("failed while checking file existence", "err", err, "path", req.Path)
|
||||
return ErrUploadInternalError
|
||||
|
||||
@@ -128,7 +128,7 @@ func TestShouldUploadWhenNoFileAlreadyExists(t *testing.T) {
|
||||
service, mockStorage, storageName := setupUploadStore(t, nil)
|
||||
|
||||
fileName := "/myFile.jpg"
|
||||
mockStorage.On("Get", mock.Anything, fileName).Return(nil, nil)
|
||||
mockStorage.On("Get", mock.Anything, fileName, &filestorage.GetFileOptions{WithContents: false}).Return(nil, false, nil)
|
||||
mockStorage.On("Upsert", mock.Anything, &filestorage.UpsertFileCommand{
|
||||
Path: fileName,
|
||||
MimeType: "image/jpeg",
|
||||
@@ -157,7 +157,7 @@ func TestShouldFailUploadWithoutAccess(t *testing.T) {
|
||||
func TestShouldFailUploadWhenFileAlreadyExists(t *testing.T) {
|
||||
service, mockStorage, storageName := setupUploadStore(t, nil)
|
||||
|
||||
mockStorage.On("Get", mock.Anything, "/myFile.jpg").Return(&filestorage.File{Contents: make([]byte, 0)}, nil)
|
||||
mockStorage.On("Get", mock.Anything, "/myFile.jpg", &filestorage.GetFileOptions{WithContents: false}).Return(&filestorage.File{Contents: make([]byte, 0)}, true, nil)
|
||||
|
||||
err := service.Upload(context.Background(), dummyUser, &UploadRequest{
|
||||
EntityType: EntityTypeImage,
|
||||
@@ -213,7 +213,7 @@ func TestShouldUploadSvg(t *testing.T) {
|
||||
service, mockStorage, storageName := setupUploadStore(t, nil)
|
||||
|
||||
fileName := "/myFile.svg"
|
||||
mockStorage.On("Get", mock.Anything, fileName).Return(nil, nil)
|
||||
mockStorage.On("Get", mock.Anything, fileName, &filestorage.GetFileOptions{WithContents: false}).Return(nil, false, nil)
|
||||
mockStorage.On("Upsert", mock.Anything, &filestorage.UpsertFileCommand{
|
||||
Path: fileName,
|
||||
MimeType: "image/svg+xml",
|
||||
|
||||
@@ -86,7 +86,8 @@ func (t *nestedTree) GetFile(ctx context.Context, orgId int64, path string) (*fi
|
||||
if store == nil {
|
||||
return nil, fmt.Errorf("store not ready")
|
||||
}
|
||||
return store.Get(ctx, path)
|
||||
file, _, err := store.Get(ctx, path, nil)
|
||||
return file, err
|
||||
}
|
||||
|
||||
func (t *nestedTree) getStorages(orgId int64) []storageRuntime {
|
||||
|
||||
Reference in New Issue
Block a user