@@ -46,6 +46,11 @@ BOOST_AUTO_TEST_CASE( bulk_put ) {
4646 free_client (client);
4747}
4848
49+ /*
50+ * The correct use case to PUT a single folder:
51+ * 1. Create a put bulk job with the folder
52+ * 2. Put the folder (with trailing slash), optionally with metadata
53+ */
4954BOOST_AUTO_TEST_CASE ( empty_folder ) {
5055 printf (" -----Testing put empty folder-------\n " );
5156
@@ -55,7 +60,16 @@ BOOST_AUTO_TEST_CASE( empty_folder ) {
5560 ds3_error* error = create_bucket_with_data_policy (client, bucket_name, ids.data_policy_id ->value );
5661 handle_error (error);
5762
58- ds3_request* request = ds3_init_put_object_request (bucket_name, " empty-folder/" , 0 );
63+ const char * objects[1 ] = {" empty-folder/" };
64+ ds3_bulk_object_list_response* object_list = ds3_convert_object_list_from_strings (objects, 1 );
65+ ds3_request* request = ds3_init_put_bulk_job_spectra_s3_request (bucket_name, object_list);
66+ ds3_master_object_list_response* bulk_response = NULL ;
67+ error = ds3_put_bulk_job_spectra_s3_request (client, request, &bulk_response);
68+ handle_error (error);
69+ ds3_master_object_list_response_free (bulk_response);
70+
71+ request = ds3_init_put_object_request (bucket_name, objects[0 ], 0 );
72+ ds3_request_set_job (request, bulk_response->job_id ->value );
5973 error = ds3_put_object_request (client, request, NULL , NULL );
6074 ds3_request_free (request);
6175 handle_error (error);
0 commit comments