Index HTML page for S3 buckets #137

Closed
opened 2024-09-02 11:13:56 +00:00 by alexvanin · 3 comments
Owner

There is a request to provide a way to navigate through S3 bucket and download objects visually using HTTP Gateway. Gateway should return index page with hyperlinks to sub-dirs and objects inside. As a reference, see index page of debian mirror: http://mirror.mephi.ru/debian-cd/

Describe the solution you'd like

  1. Index page should be enabled in config, disabled by default
  2. Index page should work only with S3 buckets (at least for now). S3 container has S3 specific attributes.
  3. Index page and subsequent dir pages should be provided in /browse endpoint, e.g.:
    • domain.com/browse/bucketname
    • domain.com/browse/bucketname/dir1/dir2
  4. Object links should use /get endpoint

I suppose there are libraries for that, but consider implementation with simple HTML template.

Describe alternatives you've considered

None.

Additional context

None.

## Is your feature request related to a problem? Please describe. There is a request to provide a way to navigate through S3 bucket and download objects visually using HTTP Gateway. Gateway should return index page with hyperlinks to sub-dirs and objects inside. As a reference, see index page of debian mirror: http://mirror.mephi.ru/debian-cd/ ## Describe the solution you'd like 1. Index page should be enabled in config, disabled by default 2. Index page should work only with S3 buckets (at least for now). S3 container has S3 specific attributes. 3. Index page and subsequent dir pages should be provided in `/browse` endpoint, e.g.: - `domain.com/browse/bucketname` - `domain.com/browse/bucketname/dir1/dir2` 4. Object links should use `/get` endpoint I suppose there are libraries for that, but consider implementation with simple HTML template. ## Describe alternatives you've considered None. ## Additional context None.
alexvanin added this to the v0.31.0 milestone 2024-09-02 11:13:56 +00:00
nzinkevich was assigned by alexvanin 2024-09-02 11:13:56 +00:00
Owner

I believe the expected behavior should involve providing an index page for a specified path, without requiring the additional /browse/ path component. This functionality is similar to how it is implemented in Apache and Nginx with the autoindex module.

For S3 buckets, we could consider implementing a comparable feature using a tree service. This would involve checking whether a directory or an object is being requested and generating an index page when navigating through a directory.

I believe the expected behavior should involve providing an index page for a specified path, without requiring the additional `/browse/` path component. This functionality is similar to how it is implemented in Apache and Nginx with the `autoindex` module. For S3 buckets, we could consider implementing a comparable feature using a tree service. This would involve checking whether a directory or an object is being requested and generating an index page when navigating through a directory.
realloc added the
enhancement
config
labels 2024-09-06 12:10:48 +00:00
Author
Owner

Aside of things in #141 we want to:

  • embed default template into binary, so it is always available in gateway,
  • read template file once during service startup and exit application if template file is not available when index page is enabled.
Aside of things in #141 we want to: * embed default template into binary, so it is always available in gateway, * read template file once during service startup and exit application if template file is not available when index page is enabled.
Author
Owner

Done in #141

Done in #141
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: TrueCloudLab/frostfs-http-gw#137
No description provided.