IPWorks S3 2020 Node.js Edition

Questions / Feedback?

ListVersions Method

Lists the object versions in a bucket.

Syntax

s3client.listVersions([callback])

Callback

The 'callback' parameter specifies a function which will be called when the operation completes (or an error is encountered). If the 'callback' parameter is not specified, then the method will block and will not return until the operation completes (or an error is encountered).

The callback for this method is defined as:

function(err){ }

'err' is the error that occurred. If there was no error, then 'err' is 'null'.

'err' has 2 properties which hold detailed information:

err.code
err.message

Remarks

This method lists the object versions in the bucket currently selected by Bucket.

Before calling this method, the ObjectPrefix property may be set in order to restrict the results to only the object versions whose names begin with a given string. The ObjectDelimiter property can also be used to further tune the results returned. The MaxObjects configuration setting may be used to limit the number of results returned.

Calling this method will fire the ObjectList event once for each object version, and will also populate the Objects* properties. It may also fire the PrefixList event, and populate the PrefixCount and Prefix[i] configuration settings, depending on how the properties discussed above are set.

If there are still more object versions available to list when this method returns, the VersionMarker property will be populated. Continue to call this method until VersionMarker is empty to accumulate all pages of results in the Objects* properties.

Object Hierarchy Traversal

By using the ObjectDelimiter and ObjectPrefix properties in tandem, applications can effectively "traverse" a virtual hierarchy of objects (or object versions) as if it were a filesystem. For example, assume that objects with the following names exist within a bucket:

  • MyCompany
  • MyCompany/Department1
  • MyCompany/Department2
  • MyCompany/Department2/EmployeeA
  • MyCompany/Department2/EmployeeB

With ObjectDelimiter set to /, we can set ObjectPrefix to successively "deeper" values before calling ListObjects or ListVersions for the following effect:

ObjectPrefix Value Objects Returned Prefixes Returned
(empty) MyCompany MyCompany/
MyCompany/ MyCompany/Department1
MyCompany/Department2
MyCompany/Department2/
MyCompany/Department2/ MyCompany/Department2/EmployeeA
MyCompany/Department2/EmployeeB
(none)

 
 
Copyright (c) 2021 /n software inc. - All rights reserved.
IPWorks S3 2020 Node.js Edition - Version 20.0 [Build 7722]