
int s3_list_buckets(char *key,char *secret, char *product_token,char *user_token, int (*cb)(void *param, char *bf, int sz), void *param, char *reason);

int s3_put_file(char *key,char *secret, char *product_token,char *user_token, char *bucket, char *fname, char *remotename, char *reason);
int s3_cb(void *a, char *bf, int len);
int s3_get_file(char *key,char *secret, char *product_token,char *user_token,  char *bucket, char *fname, char *remotename, int from, int len, char *reason);
int s3_create_bucket(char *key,char *secret, char *product_token,char *user_token,  char *bucket, char *reason, char *response);
int s3_list_path(char *key,char *secret, char *product_token,char *user_token, char *bucket, char *fname, char *prefix, char *reason, char *marker,int listall, int max);
int s3_delete_file(char *key,char *secret, char *product_token,char *user_token, char *bucket, char *remotename, char *reason);
void s3_init(int (*fn)(const char *, ...)) ;

int s3_list_buckets_file(char *key,char *secret, char *product_token,char *user_token, char *fname, char *reason);
int s3_get_file_cb(char *key,char *secret, char *product_token,char *user_token, char *bucket, char *remotename, int from, int len, char *reason, int (*cb)(void *a, char *bf, int len), void *param);
int s3_activate_product(char *userkey, char *product_token, char *proxy, char *reason, char *usertoken, char *accesskey, char *secretkey) ;
