code: func (r *FileRepo) Get(name string, body bool) (*backend.File, error) {
  	tx, err := r.db.Begin()
  	if err != nil {
  		return nil, err
  	}
  
  	var info backend.FileInfo
  	var backendName string
  	var externalID *string
  	var sha512 []byte
  	if err := tx.QueryRow(
  		"SELECT file_id, file_oid, external_id, backend, name, type, size, sha512, updated_at FROM files WHERE name = $1 AND deleted_at IS NULL",
  		name,
  	).Scan(&info.ID, &info.Oid, &externalID, &backendName, &info.Name, &info.Type, &info.Size, &sha512, &info.ModTime); err != nil {
  		if err == pgx.ErrNoRows {
  			err = backend.ErrNotFound
  		}
  		tx.Rollback()
  		return nil, err
  	}
  	if externalID != nil {
  		info.ExternalID = *externalID
  	}
  	info.ETag = base64.StdEncoding.EncodeToString(sha512)
  	if !body {
  		tx.Rollback()
  		return &backend.File{FileInfo: info, FileStream: fakeSizeSeekerFileStream{info.Size}}, nil
  	}
  
  	b, err := r.getBackend(backendName)
  	if err != nil {
  		tx.Rollback()
  		return nil, err
  	}
  	stream, err := b.Open(tx, info, true)
  	if err != nil {
  		tx.Rollback()
  		return nil, err
  	}
  	return &backend.File{FileInfo: info, FileStream: stream}, nil
  }
docs: // Get is like Open, except the FileStream is not populated (useful for HEAD requests)