예제 #1
0
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;
    }
}
예제 #3
0
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;
}