ObjectDelimiter Property

The delimiter string to use when listing objects.


ANSI (Cross Platform)
char* GetObjectDelimiter();
int SetObjectDelimiter(const char* lpszObjectDelimiter); Unicode (Windows) LPWSTR GetObjectDelimiter();
INT SetObjectDelimiter(LPCWSTR lpszObjectDelimiter);
@property (nonatomic,readwrite,assign,getter=objectDelimiter,setter=setObjectDelimiter:) NSString* objectDelimiter;
- (NSString*)objectDelimiter;
- (void)setObjectDelimiter:(NSString*)newObjectDelimiter;

IPWORKSS3_EXTERNAL void* IPWORKSS3_CALL IPWorksS3_S3Client_Get(void *lpObj, int propid, int arridx, int *lpcbVal, int64 *lpllVal);
IPWORKSS3_EXTERNAL int IPWORKSS3_CALL IPWorksS3_S3Client_Set(void *lpObj, int propid, int arridx, const void *val, int cbVal);

Default Value



If this property is non-empty when ListObjects or ListVersions is called, any objects (or object versions) whose names contain the same string between the specified ObjectPrefix and the first occurrence of the specified delimiter that follow will be rolled up into a "common prefix" element, which is returned in place of the individual objects themselves.

The PrefixList event will fire once for each common prefix returned. If the StorePrefixList configuration setting is enabled, the class will also populate the PrefixCount and Prefix[i] configuration settings

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 ObjectDelimiter Value Objects Returned Prefixes Returned
(empty) /(none) MyCompany/
MyCompany/ /MyCompany/ MyCompany/Department1/
MyCompany/Department2/ /MyCompany/Department2/

This property is not available at design time.

Data Type


Copyright (c) 2022 /n software inc. - All rights reserved.
IPWorks S3 2020 C++ Edition - Version 20.0 [Build 8178]