Skip to content

Commit 1fe660c

Browse files
committed
from s3 upload
1 parent a89e2b4 commit 1fe660c

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

superannotate/db/projects.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1658,7 +1658,7 @@ def upload_images_from_s3_bucket_to_project(
16581658
if res["progress"] != "1":
16591659
raise SABaseException(
16601660
response.status_code,
1661-
"Couldn't upload to project from S3 " + response.text
1661+
"Couldn't upload to project from S3 " + str(res)
16621662
)
16631663
if image_quality_in_editor is not None:
16641664
set_project_default_image_quality_in_editor(project, old_quality)
@@ -1679,7 +1679,6 @@ def _get_upload_from_s3_bucket_to_project_status(project):
16791679
response.status_code,
16801680
"Couldn't get upload to project from S3 status " + response.text
16811681
)
1682-
print(response.text)
16831682
return response.json()
16841683

16851684

tests/test_direct_s3_upload.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
import 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"
1011
S3_BUCKET = 'superannotate-python-sdk-test'
1112
S3_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

Comments
 (0)