)]}'
{"swift/common/middleware/s3api/controllers/multi_upload.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"c6a517086e558489cf2a8ff7332bbb76a80b11eb","unresolved":true,"context_lines":[{"line_number":407,"context_line":"        if len(req.object_name) \u003e constraints.MAX_OBJECT_NAME_LENGTH:"},{"line_number":408,"context_line":"            # Note that we can still run into trouble where the MPU is just"},{"line_number":409,"context_line":"            # within the limit, which means the segment names will go over"},{"line_number":410,"context_line":"            raise KeyTooLongError()"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        # Create a unique S3 upload id from UUID to avoid duplicates."},{"line_number":413,"context_line":"        upload_id \u003d unique_id()"}],"source_content_type":"text/x-python","patch_set":2,"id":"0a8c87be_37c8403e","line":410,"updated":"2021-06-21 05:57:17.000000000","message":"Then for MPUs should this be:\n\n  if len(req.object_name) \u003e (constraints.MAX_OBJECT_NAME_LENGTH - len(upload_id) - len(max_upload_part_num)):\n\nOr maybe better, segments could get sanitized as they get uploaded, it get \u003e the max_obj_size then we truncate the end of the object name component of the segement and add an md5 to keep things unique.\n\n  object-name[:-\u003clen of md5 + amount exceeding + max_upload_part_num\u003e] + md5sum(of removed objname)/\u003cupload_id\u003e/\u003cpartnumber\u003e\n\nAnd hope we won\u0027t have any collisions.","commit_id":"ca0c34445630e3c3e1df191490b987aa15f8b82a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0241e5636fb5ed8129ec9da810079b9074efdde3","unresolved":true,"context_lines":[{"line_number":407,"context_line":"        if len(req.object_name) \u003e constraints.MAX_OBJECT_NAME_LENGTH:"},{"line_number":408,"context_line":"            # Note that we can still run into trouble where the MPU is just"},{"line_number":409,"context_line":"            # within the limit, which means the segment names will go over"},{"line_number":410,"context_line":"            raise KeyTooLongError()"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"        # Create a unique S3 upload id from UUID to avoid duplicates."},{"line_number":413,"context_line":"        upload_id \u003d unique_id()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af1d0c6_6a018b71","line":410,"in_reply_to":"0a8c87be_37c8403e","updated":"2021-07-02 18:23:24.000000000","message":"I think the real solution would be to get all of the segments into the reserved namespace and do something like we did at https://github.com/openstack/swift/blob/2.27.0/swift/proxy/controllers/base.py#L2249-L2252","commit_id":"ca0c34445630e3c3e1df191490b987aa15f8b82a"}],"swift/common/middleware/s3api/s3response.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"196dc6ee85f442c1267b55e32987330b26292489","unresolved":true,"context_lines":[{"line_number":503,"context_line":"        ErrorResponse.__init__(self, msg, uri\u003duri, *args, **kwargs)"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"class KeyTooLongError(ErrorResponse):"},{"line_number":507,"context_line":"    _status \u003d \u0027400 Bad Request\u0027"},{"line_number":508,"context_line":"    _msg \u003d \u0027Your key is too long.\u0027"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8db09584_7b5a7028","line":506,"updated":"2021-06-09 20:15:44.000000000","message":"https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList has it as KeyTooLongError.","commit_id":"ca0c34445630e3c3e1df191490b987aa15f8b82a"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0241e5636fb5ed8129ec9da810079b9074efdde3","unresolved":true,"context_lines":[{"line_number":503,"context_line":"        ErrorResponse.__init__(self, msg, uri\u003duri, *args, **kwargs)"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"class KeyTooLongError(ErrorResponse):"},{"line_number":507,"context_line":"    _status \u003d \u0027400 Bad Request\u0027"},{"line_number":508,"context_line":"    _msg \u003d \u0027Your key is too long.\u0027"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0be2d62c_4cff6ce5","line":506,"in_reply_to":"43056dc6_4d6a39b7","updated":"2021-07-02 18:23:24.000000000","message":"Yup, never used.","commit_id":"ca0c34445630e3c3e1df191490b987aa15f8b82a"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"c6a517086e558489cf2a8ff7332bbb76a80b11eb","unresolved":true,"context_lines":[{"line_number":503,"context_line":"        ErrorResponse.__init__(self, msg, uri\u003duri, *args, **kwargs)"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"class KeyTooLongError(ErrorResponse):"},{"line_number":507,"context_line":"    _status \u003d \u0027400 Bad Request\u0027"},{"line_number":508,"context_line":"    _msg \u003d \u0027Your key is too long.\u0027"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"43056dc6_4d6a39b7","line":506,"in_reply_to":"8db09584_7b5a7028","updated":"2021-06-21 05:57:17.000000000","message":"Not against the name change. Great to line it up with S3. Are we not ever raising KeyTooLong before this patch yet we\u0027ve had the class... unless my grep fu is failing. But you also don\u0027t need to change any other naming elsewhere.","commit_id":"ca0c34445630e3c3e1df191490b987aa15f8b82a"}]}
