mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 14:32:24 -05:00 
			
		
		
		
	[performance] update storage backend and make use of seek syscall when available (#2924)
* update to use go-storage/ instead of go-store/v2/storage/
* pull in latest version from codeberg
* remove test output 😇
* add code comments
* set the exclusive bit when creating new files in disk config
* bump to actual release version
* bump to v0.1.1 (tis a simple no-logic change)
* update readme
* only use a temporary read seeker when decoding video if required (should only be S3 now)
* use fastcopy library to use memory pooled buffers when calling TempFileSeeker()
* update to use seek call in serveFileRange()
	
	
This commit is contained in:
		
					parent
					
						
							
								06b1e0173b
							
						
					
				
			
			
				commit
				
					
						3d3e99ae52
					
				
			
		
					 91 changed files with 1610 additions and 12737 deletions
				
			
		|  | @ -224,10 +224,20 @@ func serveFileRange(rw http.ResponseWriter, r *http.Request, src io.Reader, rng | |||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	// Dump the first 'start' many bytes into the void... | ||||
| 	if _, err := fastcopy.CopyN(io.Discard, src, start); err != nil { | ||||
| 		log.Errorf(r.Context(), "error reading from source: %v", err) | ||||
| 		return | ||||
| 	if rs, ok := src.(io.ReadSeeker); ok { | ||||
| 		// Source supports seeking (usually *os.File), | ||||
| 		// seek to the 'start' byte position in file. | ||||
| 		if _, err := rs.Seek(start, 0); err != nil { | ||||
| 			log.Errorf(r.Context(), "error seeking in source: %v", err) | ||||
| 			return | ||||
| 		} | ||||
| 	} else { | ||||
| 		// Compat for when no seek call is implemented, | ||||
| 		// dump the first 'start' many bytes into void. | ||||
| 		if _, err := fastcopy.CopyN(io.Discard, src, start); err != nil { | ||||
| 			log.Errorf(r.Context(), "error reading from source: %v", err) | ||||
| 			return | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// Determine new content length | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue