Allows files to be read through FileSystem interface.
The functionality is needed while Pocketbase is used in embedded mode
This commit is contained in:
		
							parent
							
								
									59e4939e1d
								
							
						
					
					
						commit
						a5ceee33df
					
				| 
						 | 
				
			
			@ -285,6 +285,16 @@ var manualExtensionContentTypes = map[string]string{
 | 
			
		|||
	".css": "text/css",      // (see https://github.com/gabriel-vasile/mimetype/pull/113)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// / GetFile returns a file content reader for given file key
 | 
			
		||||
// / NB! Make sure to call `Close()` after you are done working with it.
 | 
			
		||||
func (s *System) GetFile(fileKey string) (io.ReadCloser, error) {
 | 
			
		||||
	br, readErr := s.bucket.NewReader(s.ctx, fileKey, nil)
 | 
			
		||||
	if readErr != nil {
 | 
			
		||||
		return nil, readErr
 | 
			
		||||
	}
 | 
			
		||||
	return br, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Serve serves the file at fileKey location to an HTTP response.
 | 
			
		||||
func (s *System) Serve(res http.ResponseWriter, req *http.Request, fileKey string, name string) error {
 | 
			
		||||
	br, readErr := s.bucket.NewReader(s.ctx, fileKey, nil)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -348,7 +348,25 @@ func TestFileSystemServe(t *testing.T) {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
func TestFileSystemGetFile(t *testing.T) {
 | 
			
		||||
	dir := createTestDir(t)
 | 
			
		||||
	defer os.RemoveAll(dir)
 | 
			
		||||
 | 
			
		||||
	fs, err := filesystem.NewLocal(dir)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		t.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
	defer fs.Close()
 | 
			
		||||
 | 
			
		||||
	f, fErr := fs.GetFile("image.png")
 | 
			
		||||
	if fErr != nil {
 | 
			
		||||
		t.Fatal(fErr)
 | 
			
		||||
	}
 | 
			
		||||
	defer f.Close()
 | 
			
		||||
	if f == nil {
 | 
			
		||||
		t.Fatal("File is supposed to be found")
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
func TestFileSystemServeSingleRange(t *testing.T) {
 | 
			
		||||
	dir := createTestDir(t)
 | 
			
		||||
	defer os.RemoveAll(dir)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue