Skip to content

Remove file-handle from object store GET operations #18

Open
@crepererum

Description

@crepererum

What

Remove GetResultPayload::File (and the entire enum).

Why

The file handle has several drawbacks as it does NOT specify the following properties:

  • mode: Is the file opened read-only or does it also have write access (which would be bad)?
  • seek position: At which position is the current file "read head"? Are users expected to seek to the file start if they want to read the entire file?
  • direct IO: Is the file opened using direct IO? (in which case the user would have to read in aligned blocks)
  • exclusive access: Does the API user have exclusive access to the said file handle (and hence can use seek-based operations) or not (in which case only non-seeking operations like read_at would be required)

At the same time I suspect that most users copy the file data into a buffer anyways and don't use any kernel-based IO operations like sendfile.

All object store users and integrating libraries potentially have to deal with streams AND file handles.

How

Remove the entire GetResultPayload enum and just use streams.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions