Search by Tags

Cloud S3 Lib API

 

Article updated at 28 Oct 2017
Compare with Revision

Attention: this is a legacy library and thus not supported by Toradex anymore. We recommend that you use the new libraries for all Toradex modules. Please see the Toradex CE Libraries and Code Samples for up-to-date information.

Contains function declarations to be used to access AWS Cloud S3 Services Colibri Modules [PXAxxx, Tegra T20], WinCE 6.0 / 7.0 . More...

Macros

#define  AWS_S3_ACCESS_ID_MAX_LENGTH  20
20 Characters
#define  AWS_S3_SECRET_KEY_MAX_LENGTH  40
40 Characters
#define  MAX_RESOURCE_PATH_SIZE  1024
Max Resource Path String Length allowed.
#define  AWS_S3_TIME_STRING_LEN  32
AWS Time String Length.
#define  AWS_SIGNATURE_STRING_LEN  28
Length of Signature String.
#define  AWS_LIST_ALL_BUCKET_CHUNK_SIZE  (1024 * 32)
#define  AWS_LIST_BUCKET_CHUNK_SIZE  (1024 * 32)
#define  AWS_DOWNLOAD_FILE_CHUNK_SIZE  (1024 * 100)
#define  AWS_UPLOAD_FILE_CHUNK_SIZE  (1024 * 100)
#define  S3_HANDLE_MEMORY_ALLOCATION  (3 * 4)
#define  S3_HEADER_BUFFER_SIZE  120
#define  S3_HTTP_RESPONSE_DATA_BUFFER_SMALL  (1 * 1024)

Functions

BOOL  S3Open (HS3 *s3Account, const char *accessId, const char *secretKey, const char *path)
BOOL  S3ListAllBuckets (HS3 s3Account, char *listData, const char *filePath, DWORD *rawBytes)
BOOL  S3ListBucket (HS3 s3Account, const char *bucketPath, const char *tmpFileName, DWORD *rawBytes)
BOOL  FindFirstBucket (const char *filePath, DWORD fileSize, char *dataOut, DWORD dataOutSize, DWORD *pointerToNextFile)
BOOL  FindFirstFileInBucket (const char *filePath, DWORD fileSize, char *dataOut, DWORD dataOutSize, DWORD *pointerToNextFile)
BOOL  S3MakeDirectory (HS3 s3Account, const char *directoryPath)
BOOL  S3RemoveDirectory (HS3 s3Account, const char *directoryPath)
BOOL  S3DeleteFile (HS3 s3Account, const char *filePath)
BOOL  S3DownloadFile (HS3 s3Account, const char *sourceFilePath, const char *destinationFilePath, DWORD fileSize, DWORD *bytesDownloaded, CallBackType callBack)
BOOL  S3UploadFile (HS3 s3Account, const char *sourceFilePath, DWORD sourceFileSize, const char *destinationFilePath, DWORD *bytesUploaded, CallBackType callBack)
BOOL  S3Close (HS3 *s3Account)

Detailed Description

Contains function declarations to be used to access AWS Cloud S3 Services Colibri Modules [PXAxxx, Tegra T20], WinCE 6.0 / 7.0 .

Author
Author:
agp
Version
Rev:
1154
Date
Date:
2012-11-08 19:56:19 +0530 (Thu, 08 Nov 2012)

Function Documentation

BOOL FindFirstBucket ( const char *  filePath,
DWORD  fileSize,
char *  dataOut,
DWORD  dataOutSize,
DWORD *  pointerToNextFile
)

Finds Bucket details one by one from list stored in a local file
File should be initialized by calling S3ListAllBuckets()

Parameters
[in] filePath Pointer to the file path string
[in] fileSize Size of the file in bytes, this value is received from call to S3ListAllBuckets() in variable rawBytes
[out] dataOut Pointer to the memory holding file information: "filename:size of file",
User need to allocate memory to hold data
[in] dataOutSize Size of the memory allocated for dataOut
[in,out] pointerToNextFile Pointer holds value to next file details, this parameter will be NULL for 1st call
Return values
TRUE Success
FALSE See GetLastError()
BOOL FindFirstFileInBucket ( const char *  filePath,
DWORD  fileSize,
char *  dataOut,
DWORD  dataOutSize,
DWORD *  pointerToNextFile
)

Finds file inside the bucket one by one, from the bucket list stored in a local file
File should be initialized by calling S3ListBucket()

Parameters
[in] filePath Pointer to the file path string
[in] fileSize Size of the file in bytes, this value is received from call to S3ListBucket() in variable rawBytes
[out] dataOut Pointer to the memory holding file information: "filename:size of file", user need to allocate memory to hold data
[in] dataOutSize Size of the memory allocated for dataOut
[in,out] pointerToNextFile Pointer holds value to next file received from previous call to FindFirstFileInBucket(), this parameter will be NULL for 1st call
Return values
TRUE Success
FALSE See GetLastError()
BOOL S3Close ( HS3 *  s3Account )

Deletes already opened s3Account Handle

Parameters
[in] s3Account Handle returned by call to S3Open()
Return values
TRUE Success
FALSE See GetLastError()
BOOL S3DeleteFile ( HS3  s3Account,
const char *  filePath
)

Deletes existing file from a Bucket

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] filePath Pointer to the s3 file path string
Return values
TRUE Success
FALSE See GetLastError() if filePath does not exists, it will report success
BOOL S3DownloadFile ( HS3  s3Account,
const char *  sourceFilePath,
const char *  destinationFilePath,
DWORD  fileSize,
DWORD *  bytesDownloaded,
CallBackType  callBack
)

Downloads a file from a bucket to local system

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] sourceFilePath Pointer to the remote/s3 file path string
[in] destinationFilePath Pointer to the local file path string
[in] fileSize Optional to use, Size of the file to download, user need to find out using call to S3ListAllBuckets()
if doesn't want to use this feature put NULL
[out] bytesDownloaded Pointer to the variable which holds number of bytes downloaded
[in] callBack Pointer to the function which will be called during download in progress
Function will be called, after every 32KB of data is downloaded
Return values
TRUE Success
FALSE See GetLastError() "+" character is not allowed in sourceFilePath & destinationFilePath
BOOL S3ListAllBuckets ( HS3  s3Account,
char *  listData,
const char *  filePath,
DWORD *  rawBytes
)

Lists all the bucket in S3 account List is stored in a local file

Parameters
[in] s3Account Handle returned by call to S3Open()
[out] listData Pointer to the Bucket list
Data will be like "Bucket1Name:CreationDate" User need to allocate sufficient memory to hold the data before using this function
[NULL] if this parameter is set NULL, it will give only noOfBuckets & rawBytes as output
[pointer variable] after knowing number of buckets/number of raw data bytes required to hold bucket list data
User can decide how many bytes are required to allocate for bucket list
User can allocate rawBytes number of bytes
[in] filePath Pointer to the file path, in which all bucket list data to be stored.
[out] rawBytes Pointer to the variable holding number of bytes required for bucket list data
Return values
TRUE Success
FALSE See GetLastError() User need to check & if file exists, delete the file(filePath) before using the function
BOOL S3ListBucket ( HS3  s3Account,
const char *  bucketPath,
const char *  tmpFileName,
DWORD *  rawBytes
)

Lists all the files inside a bucket
List is stored in a local file

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] bucketPath Pointer to the path of the bucket, for example "/awswebdrive1/"
[in] tmpFileName Pointer to the local file path string in which list data will be stored
[out] rawBytes Pointer to the variable which holds size of file in number of bytes
Return values
TRUE Success
FALSE See GetLastError() User need to check & if file exists, delete the file(filePath) before using the function
BOOL S3MakeDirectory ( HS3  s3Account,
const char *  directoryPath
)

Makes new directory in a Bucket

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] directoryPath Pointer to the s3 directory path string
Return values
TRUE Success
FALSE See GetLastError() if existing directory path is given, it will report successful
BOOL S3Open ( HS3 *  s3Account,
const char *  accessId,
const char *  secretKey,
const char *  path
)

Opens Handle for s3Account

Parameters
[out] s3Account s3Account Handle
[in] accessId Pointer to the aws account Access Id string [20 Characters]
[in] secretKey Pointer to the aws account Secret Key [40 Characters]
[in] path Pointer to the aws s3 path string
Return values
TRUE Success
FALSE See GetLastError()
BOOL S3RemoveDirectory ( HS3  s3Account,
const char *  directoryPath
)

Deletes existing directory from a Bucket

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] directoryPath Pointer to the s3 directory path string
Return values
TRUE Success
FALSE See GetLastError() if non existing directory path is given, it will report success
BOOL S3UploadFile ( HS3  s3Account,
const char *  sourceFilePath,
DWORD  sourceFileSize,
const char *  destinationFilePath,
DWORD *  bytesUploaded,
CallBackType  callBack
)

Uploads a file to a bucket, existing on a local system

Parameters
[in] s3Account Handle returned by call to S3Open()
[in] sourceFilePath Pointer to the local file path string
[in] sourceFileSize size of the file in bytes (sourceFilePath)
[in] destinationFilePath Pointer to the remote/S3 file path string
[out] bytesUploaded Pointer to the variable which will holds, number of bytes uploaded
[in] callBack Pointer to the function which will be called during upload in progress
Function will be called after, every 32KB of data is uploaded
Return values
TRUE Success
FALSE See GetLastError() "+" character is not allowed in sourceFilePath & destinationFilePath