31 #include <sys/select.h>
121 #define S3_MAX_HOSTNAME_SIZE 255
126 #define S3_DEFAULT_HOSTNAME "s3.amazonaws.com"
133 #define S3_MAX_BUCKET_NAME_SIZE 255
138 #define S3_MAX_KEY_SIZE 1024
145 #define S3_MAX_METADATA_SIZE 2048
151 #define S3_METADATA_HEADER_NAME_PREFIX "x-amz-meta-"
161 #define S3_MAX_METADATA_COUNT \
162 (S3_MAX_METADATA_SIZE / (sizeof(S3_METADATA_HEADER_NAME_PREFIX "nv") - 1))
170 #define S3_MAX_ACL_GRANT_COUNT 100
177 #define S3_MAX_GRANTEE_EMAIL_ADDRESS_SIZE 128
184 #define S3_MAX_GRANTEE_USER_ID_SIZE 128
191 #define S3_MAX_GRANTEE_DISPLAY_NAME_SIZE 128
199 #define S3_MAX_AUTHENTICATED_QUERY_STRING_SIZE \
201 sizeof("?AWSAccessKeyId=") + 32 + sizeof("&Expires=") + 32 + \
202 sizeof("&Signature=") + 28 + 1)
210 #define S3_INIT_WINSOCK 1
217 #define S3_INIT_ALL (S3_INIT_WINSOCK)
927 const char *ownerDisplayName,
928 const char *bucketName,
929 int64_t creationDateSeconds,
964 const char *nextMarker,
967 int commonPrefixesCount,
968 const char **commonPrefixes,
1013 void *callbackData);
1170 const char *defaultS3HostName);
1259 int *aclGrantCountReturn,
S3AclGrant *aclGrants);
1346 int *requestsRemainingReturn);
1380 fd_set *readFdSet, fd_set *writeFdSet,
1381 fd_set *exceptFdSet,
int *maxFd);
1432 const char *key, int64_t expires,
const char *resource);
1458 const char *secretAccessKey,
const char *hostName,
1461 void *callbackData);
1499 const char *accessKeyId,
const char *secretAccessKey,
1500 const char *hostName,
const char *bucketName,
1501 int locationConstraintReturnSize,
1502 char *locationConstraintReturn,
1530 const char *secretAccessKey,
const char *hostName,
1532 const char *locationConstraint,
1559 const char *accessKeyId,
const char *secretAccessKey,
1560 const char *hostName,
const char *bucketName,
1586 const char *prefix,
const char *marker,
1587 const char *delimiter,
int maxkeys,
1617 uint64_t contentLength,
1658 const char *key,
const char *destinationBucket,
1659 const char *destinationKey,
1661 int64_t *lastModifiedReturn,
int eTagReturnSize,
1689 uint64_t startByte, uint64_t byteCount,
1762 char *ownerId,
char *ownerDisplayName,
1763 int *aclGrantCountReturn,
S3AclGrant *aclGrants,
1794 const char *ownerId,
const char *ownerDisplayName,
1795 int aclGrantCount,
const S3AclGrant *aclGrants,
1841 char *targetBucketReturn,
1842 char *targetPrefixReturn,
1843 int *aclGrantCountReturn,
1847 void *callbackData);
1880 const char *targetBucket,
1881 const char *targetPrefix,
int aclGrantCount,
1885 void *callbackData);
const char * name
Definition: libs3.h:491
const char * key
Definition: libs3.h:685
struct S3BucketContext S3BucketContext
struct S3ListServiceHandler S3ListServiceHandler
S3Status S3_runonce_request_context(S3RequestContext *requestContext, int *requestsRemainingReturn)
S3GranteeType
Definition: libs3.h:414
struct S3RequestContext S3RequestContext
Definition: libs3.h:479
S3ResponseCompleteCallback * completeCallback
Definition: libs3.h:1040
const char * eTag
Definition: libs3.h:547
struct S3GetConditions S3GetConditions
const char * furtherDetails
Definition: libs3.h:849
S3Status S3_generate_authenticated_query_string(char *buffer, const S3BucketContext *bucketContext, const char *key, int64_t expires, const char *resource)
int64_t expires
Definition: libs3.h:765
int metaDataCount
Definition: libs3.h:563
const char * message
Definition: libs3.h:838
const char * bucketName
Definition: libs3.h:650
S3Status S3_validate_bucket_name(const char *bucketName, S3UriStyle uriStyle)
S3Protocol
Definition: libs3.h:376
void S3_set_acl(const S3BucketContext *bucketContext, const char *key, const char *ownerId, const char *ownerDisplayName, int aclGrantCount, const S3AclGrant *aclGrants, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
int metaDataCount
Definition: libs3.h:776
const char * server
Definition: libs3.h:539
S3Permission
Definition: libs3.h:439
const char * S3_get_status_name(S3Status status)
S3Permission permission
Definition: libs3.h:629
void S3_test_bucket(S3Protocol protocol, S3UriStyle uriStyle, const char *accessKeyId, const char *secretAccessKey, const char *hostName, const char *bucketName, int locationConstraintReturnSize, char *locationConstraintReturn, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
int64_t ifNotModifiedSince
Definition: libs3.h:807
void S3_set_server_access_logging(const S3BucketContext *bucketContext, const char *targetBucket, const char *targetPrefix, int aclGrantCount, const S3AclGrant *aclGrants, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
S3ResponseHandler responseHandler
Definition: libs3.h:1053
S3ListBucketCallback * listBucketCallback
Definition: libs3.h:1080
S3Status S3_convert_acl(char *aclXml, char *ownerId, char *ownerDisplayName, int *aclGrantCountReturn, S3AclGrant *aclGrants)
S3Status S3_runall_request_context(S3RequestContext *requestContext)
const char * ifMatchETag
Definition: libs3.h:815
uint64_t size
Definition: libs3.h:702
const char * requestId
Definition: libs3.h:512
struct S3ErrorDetails S3ErrorDetails
const char * accessKeyId
Definition: libs3.h:666
struct S3ResponseProperties S3ResponseProperties
int extraDetailsCount
Definition: libs3.h:855
void S3_head_object(const S3BucketContext *bucketContext, const char *key, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
S3ResponsePropertiesCallback * propertiesCallback
Definition: libs3.h:1032
struct S3ResponseHandler S3ResponseHandler
S3UriStyle
Definition: libs3.h:395
union S3AclGrant::@0 grantee
int( S3PutObjectDataCallback)(int bufferSize, char *buffer, void *callbackData)
Definition: libs3.h:990
S3CannedAcl
Definition: libs3.h:462
const char * requestId2
Definition: libs3.h:518
void S3_list_bucket(const S3BucketContext *bucketContext, const char *prefix, const char *marker, const char *delimiter, int maxkeys, S3RequestContext *requestContext, const S3ListBucketHandler *handler, void *callbackData)
#define S3_MAX_GRANTEE_EMAIL_ADDRESS_SIZE
Definition: libs3.h:177
S3ResponseHandler responseHandler
Definition: libs3.h:1072
const char * ownerId
Definition: libs3.h:708
struct S3AclGrant S3AclGrant
const S3NameValue * metaData
Definition: libs3.h:783
const char * resource
Definition: libs3.h:843
const char * eTag
Definition: libs3.h:697
S3Status S3_create_request_context(S3RequestContext **requestContextReturn)
S3ListServiceCallback * listServiceCallback
Definition: libs3.h:1059
struct S3AclGrant::@0::@2 canonicalUser
S3Status S3_get_request_context_fdsets(S3RequestContext *requestContext, fd_set *readFdSet, fd_set *writeFdSet, fd_set *exceptFdSet, int *maxFd)
struct S3ListBucketContent S3ListBucketContent
void S3_get_acl(const S3BucketContext *bucketContext, const char *key, char *ownerId, char *ownerDisplayName, int *aclGrantCountReturn, S3AclGrant *aclGrants, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
void S3_put_object(const S3BucketContext *bucketContext, const char *key, uint64_t contentLength, const S3PutProperties *putProperties, S3RequestContext *requestContext, const S3PutObjectHandler *handler, void *callbackData)
void S3_delete_bucket(S3Protocol protocol, S3UriStyle uriStyle, const char *accessKeyId, const char *secretAccessKey, const char *hostName, const char *bucketName, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
int64_t lastModified
Definition: libs3.h:557
int S3_status_is_retryable(S3Status status)
char emailAddress[S3_MAX_GRANTEE_EMAIL_ADDRESS_SIZE]
Definition: libs3.h:608
const char * contentDispositionFilename
Definition: libs3.h:751
#define S3_MAX_GRANTEE_DISPLAY_NAME_SIZE
Definition: libs3.h:191
struct S3NameValue S3NameValue
S3Status S3_initialize(const char *userAgentInfo, int flags, const char *defaultS3HostName)
const char * contentType
Definition: libs3.h:525
void S3_create_bucket(S3Protocol protocol, const char *accessKeyId, const char *secretAccessKey, const char *hostName, const char *bucketName, S3CannedAcl cannedAcl, const char *locationConstraint, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
struct S3PutObjectHandler S3PutObjectHandler
S3GetObjectDataCallback * getObjectDataCallback
Definition: libs3.h:1123
int64_t lastModified
Definition: libs3.h:691
const char * hostName
Definition: libs3.h:645
void S3_get_server_access_logging(const S3BucketContext *bucketContext, char *targetBucketReturn, char *targetPrefixReturn, int *aclGrantCountReturn, S3AclGrant *aclGrants, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
S3Status( S3ListServiceCallback)(const char *ownerId, const char *ownerDisplayName, const char *bucketName, int64_t creationDateSeconds, void *callbackData)
Definition: libs3.h:926
S3ResponseHandler responseHandler
Definition: libs3.h:1093
void S3_delete_object(const S3BucketContext *bucketContext, const char *key, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
int64_t ifModifiedSince
Definition: libs3.h:799
void S3_get_object(const S3BucketContext *bucketContext, const char *key, const S3GetConditions *getConditions, uint64_t startByte, uint64_t byteCount, S3RequestContext *requestContext, const S3GetObjectHandler *handler, void *callbackData)
S3Status
Definition: libs3.h:229
S3Status( S3ListBucketCallback)(int isTruncated, const char *nextMarker, int contentsCount, const S3ListBucketContent *contents, int commonPrefixesCount, const char **commonPrefixes, void *callbackData)
Definition: libs3.h:963
S3Status( S3ResponsePropertiesCallback)(const S3ResponseProperties *properties, void *callbackData)
Definition: libs3.h:884
struct S3AclGrant::@0::@1 amazonCustomerByEmail
const char * contentType
Definition: libs3.h:729
const char * secretAccessKey
Definition: libs3.h:671
void S3_destroy_request_context(S3RequestContext *requestContext)
char displayName[S3_MAX_GRANTEE_DISPLAY_NAME_SIZE]
Definition: libs3.h:623
S3CannedAcl cannedAcl
Definition: libs3.h:771
const char * cacheControl
Definition: libs3.h:742
int64_t S3_get_request_context_timeout(S3RequestContext *requestContext)
S3PutObjectDataCallback * putObjectDataCallback
Definition: libs3.h:1101
#define S3_MAX_GRANTEE_USER_ID_SIZE
Definition: libs3.h:184
struct S3PutProperties S3PutProperties
const char * value
Definition: libs3.h:496
const char * ownerDisplayName
Definition: libs3.h:714
const char * ifNotMatchETag
Definition: libs3.h:823
S3UriStyle uriStyle
Definition: libs3.h:661
void S3_list_service(S3Protocol protocol, const char *accessKeyId, const char *secretAccessKey, const char *hostName, S3RequestContext *requestContext, const S3ListServiceHandler *handler, void *callbackData)
const S3NameValue * metaData
Definition: libs3.h:571
void( S3ResponseCompleteCallback)(S3Status status, const S3ErrorDetails *errorDetails, void *callbackData)
Definition: libs3.h:903
void S3_copy_object(const S3BucketContext *bucketContext, const char *key, const char *destinationBucket, const char *destinationKey, const S3PutProperties *putProperties, int64_t *lastModifiedReturn, int eTagReturnSize, char *eTagReturn, S3RequestContext *requestContext, const S3ResponseHandler *handler, void *callbackData)
uint64_t contentLength
Definition: libs3.h:534
struct S3ListBucketHandler S3ListBucketHandler
struct S3GetObjectHandler S3GetObjectHandler
S3GranteeType granteeType
Definition: libs3.h:586
S3ResponseHandler responseHandler
Definition: libs3.h:1114
const char * contentEncoding
Definition: libs3.h:758
S3Protocol protocol
Definition: libs3.h:655
S3Status( S3GetObjectDataCallback)(int bufferSize, const char *buffer, void *callbackData)
Definition: libs3.h:1012
const char * md5
Definition: libs3.h:736
S3NameValue * extraDetails
Definition: libs3.h:862