66
77import superannotate as sa
88
9- TEST_PROJECT_NAME = "test_direct_s3_upload"
9+ TEST_PROJECT_NAME = "test_direct_s3_upload1"
10+ TEST_PROJECT_NAME2 = "test_direct_s3_upload_folder_2"
1011S3_BUCKET = 'superannotate-python-sdk-test'
1112S3_FOLDER = 'sample_project_vector'
1213
@@ -39,3 +40,37 @@ def test_direct_s3_upload():
3940 on_s3 .append (key )
4041
4142 assert len (on_s3 ) == sa .get_project_image_count (project )
43+
44+
45+ def test_direct_s3_upload_folder ():
46+ projects_found = sa .search_projects (
47+ TEST_PROJECT_NAME2 , return_metadata = True
48+ )
49+ for pr in projects_found :
50+ sa .delete_project (pr )
51+
52+ project = sa .create_project (TEST_PROJECT_NAME2 , "a" , "Vector" )
53+ print (project ["id" ])
54+
55+ csv = (Path .home () / ".aws" / "credentials" ).read_text ().splitlines ()
56+
57+ access_key_id = csv [1 ].split (" = " )[1 ]
58+ access_secret = csv [2 ].split (" = " )[1 ]
59+
60+ sa .create_folder (project , "folder1" )
61+ project_folder = project ["name" ] + "/folder1"
62+ sa .upload_images_from_s3_bucket_to_project (
63+ project_folder , access_key_id , access_secret , S3_BUCKET , S3_FOLDER
64+ )
65+ s3_client = boto3 .client ('s3' )
66+ paginator = s3_client .get_paginator ('list_objects_v2' )
67+ response_iterator = paginator .paginate (Bucket = S3_BUCKET , Prefix = S3_FOLDER )
68+ on_s3 = []
69+ for response in response_iterator :
70+ if 'Contents' in response :
71+ for object_data in response ['Contents' ]:
72+ key = object_data ['Key' ]
73+ if key [- 4 :] in [".jpg" , ".png" ]:
74+ on_s3 .append (key )
75+
76+ assert len (on_s3 ) == len (sa .search_images (project_folder ))
0 commit comments