question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

NSFS | Versioning | Implement GET/HEAD object

See original GitHub issue

Is your feature request related to a problem? Please describe. This feature is part of NSFS versioning.

Describe the solution you’d like GET object will return the latest or the requested version object. Basically bucket can be version:

  1. Disabled
  • No call flow will/behaviour will be changed
  1. Enabled
  • return the latest object if specific version is not requested.
  • fetch the stat of all objects and return the object which is requested for
  1. Suspended Same behaviour as in case of Version enabled

steps:

  1. Funnel the application to namespaceFS.js based on bucketspace and namespace
  2. if version is specified as part of the GET, then stat(“version”) under .versiondirectory,
  if present  
        return the file 
  else 
         return err
  1. If no version specified then return the file under the specified path
  2. Follow the same process for HEAD object, instead of data just return the metadata of the request file

@dannyzaken @romayalon Please correct if wrong

Issue Analytics

  • State:open
  • Created 9 months ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
romayaloncommented, Dec 15, 2022

https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectVersions.html So actually the default behavior of list-object-versions is to return all the bucket versions, The user can pass parameters to filter the result on the server side. Always continue thinking, I appreciate it!

1reaction
romayaloncommented, Dec 14, 2022

Hi @v-harihar @guymguym back with an answer from the FS experts, The suggestion of creating directories for each object, and maintaining them can be more expensive in time and in place. think about a situation where we have millions of objects… And regarding list object versions - maybe i’m mistaken but I believe that one readdir operation on .versions/ should take less time than millions of readdir operations (when having millions of objects each has a directory under .versions/)

I suggested to the GPFS team to add a prefix field for readdir, which seems to be possible if really needed

Read more comments on GitHub >

github_iconTop Results From Across the Web

HeadObject - Amazon Simple Storage Service
The HEAD action retrieves metadata from an object without returning the object itself. ... To use HEAD, you must have READ access to...
Read more >
Using Object Versioning - Oracle Help Center
This topic describes object versioning and how to enable and manage object versions.
Read more >
Object Versioning | Cloud Storage - Google Cloud
The bucket no longer accumulates new noncurrent versions of objects. Object versions that already exist in the bucket are unaffected. Important: If you...
Read more >
Manage objects in a versioning-suspended bucket
Object Storage Service (OSS) allows you to suspend versioning for a ... In the following figure, when you use the PutObject operation to ......
Read more >
Versioning Archives - Jayendra's Cloud Certification Blog
S3 Object Versioning can be used to protect from unintended overwrites and accidental ... You must use the AWS Command Line Interface (AWS...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found