int main() { unsigned short retcode; //保存服务器http返回码的解析结果 const char *retinfo; //保存通过retcode获得的错误信息 int i; oss_client_t *client = client_initialize_with_endpoint(access_id, access_key, endpoint); /* 构造 request 参数 */ oss_list_objects_request_t *request = list_objects_request_initialize(); request->set_bucket_name(request, "bucket_example"); request->set_prefix(request,"fun/"); //设置prefix request->set_delimiter(request, "/"); //设置delimiter request->set_max_keys(request, 100); //设置max_keys request->set_marker(request, "a"); //设置marker oss_object_listing_t *object_listing = client_list_objects(client, request, &retcode); printf("list_objects_with_request result:\n\n"); if(retcode == 0) { printf("list_objects_with_request successfully.\n"); printf("bucket_name = %s\nnext_marker = %s\nprefix = %s\nmarker = %s\nmax_keys = %d\ndelimiter = %s\nis_truncated = %d\n", object_listing->bucket_name, object_listing->next_marker, object_listing->prefix, object_listing->marker, object_listing->max_keys, object_listing->delimiter, object_listing->is_truncated); for(i = 0; i < object_listing->_counts_summaries; i++) { printf("****************************************************************\n"); printf("object [%d] : \n", i); printf("type = %s\netag = %s\nkey = %s\nlast_modified = %s\nsize = %ld\nstorage_class = %s\nid = %s\ndisplay_name = %s\n", object_listing->summaries[i]->type, object_listing->summaries[i]->etag, object_listing->summaries[i]->key, object_listing->summaries[i]->last_modified, object_listing->summaries[i]->size, object_listing->summaries[i]->storage_class, object_listing->summaries[i]->owner->id, object_listing->summaries[i]->owner->display_name); } printf("=============================================================\n"); for(i = 0; i < object_listing->_counts_common_prefixes; i++) { printf("common_prefix = %s\n", (object_listing->common_prefixes)[i]); } } else { retinfo = oss_get_error_message_from_retcode(retcode); printf("error = %s\n", retinfo); } /* *释放空间 */ if(object_listing != NULL) { if(object_listing->summaries != NULL) { for(i = 0; i < object_listing->_counts_summaries; i++) { owner_finalize((object_listing->summaries)[i]->owner); object_summary_finalize((object_listing->summaries)[i]); } free(object_listing->summaries); } object_listing_finalize(object_listing); } if(request != NULL) { list_objects_request_finalize(request); } client_finalize(client); return 0; }
bool client_is_bucket_exist(oss_client_t *client, const char *bucket_name) { unsigned short retcode; oss_access_control_list_t *acl = NULL; oss_owner_t *owner = NULL; acl = client_get_bucket_acl(client, bucket_name, &retcode); if(retcode == OK) { owner = acl->get_owner(acl); owner_finalize(owner); access_control_list_finalize(acl); return true; } else { return false; } }
int main() { unsigned short retcode; //保存服务器http返回码的解析结果 const char *retinfo; //保存通过retcode获得的错误信息 oss_client_t *client = client_initialize_with_endpoint(access_id, access_key, endpoint); int buckets_number; //保存buckets的数目 int i; oss_owner_t *owner = NULL; oss_bucket_t **buckets = client_list_buckets(client, &buckets_number, &retcode); printf("list buckets result:\n\n"); if(retcode == 0) { printf("list buckets successfully.\n"); if(buckets_number != 0) { for(i = 0; i < buckets_number; i++) { printf("***********************************************************************\n"); printf("bucket [%d] : \n", i); printf("name = %s\tcreate_date = %s\n", buckets[i]->get_name(buckets[i]), buckets[i]->get_create_date(buckets[i])); owner = buckets[i]->get_owner(buckets[i]); printf("id = %s\tdisplay_name = %s\n", owner->get_id(owner), owner->get_display_name(owner)); } } else { printf("empty bucket list.\n"); } } else { retinfo = oss_get_error_message_from_retcode(retcode); printf("error = %s\n", retinfo); } /* 释放空间 */ if(buckets != NULL) { for(i = 0; i < buckets_number; i++) { if(buckets[i] != NULL) { bucket_finalize(buckets[i]); } } free(buckets); } if(owner != NULL) { owner_finalize(owner); } client_finalize(client); return 0; }