|
6 | 6 |
|
7 | 7 | ### Closed Decisions
|
8 | 8 |
|
9 |
| -1. **Response Type:** Create a new PresignedUrlGetObjectResponse specifically for pre-signed URLs, or use the existing GetObjectResponse? |
10 |
| - - Decided to use the existing GetObjectResponse for pre-signed URL operations as the HTTP response from a pre-signed URL GET is same as a standard S3 GetObject response. |
| 9 | +1. Create a new PresignedUrlGetObjectResponse specifically for pre-signed URLs, or use the existing GetObjectResponse? Decided to use the existing GetObjectResponse for pre-signed URL operations as the HTTP response from a pre-signed URL GET is same as a standard S3 GetObject response. |
11 | 10 |
|
12 |
| -2. **Exception Handling:** Use the existing SDK and S3 exceptions or implement specialized exceptions for validation errors like expired URLs? |
13 |
| - - Decided to utilize existing SDK exceptions rather than creating specialized ones for pre-signed URL operations. |
| 11 | +2. Use the existing SDK and S3 exceptions or implement specialized exceptions for validation errors like expired URLs? Decided to utilize existing SDK exceptions rather than creating specialized ones for pre-signed URL operations. |
14 | 12 |
|
15 |
| -3. **Validation Strategy:** Provide additional client-side validation with server-side validation as fallback or just rely entirely on server-side validation from S3? |
16 |
| - - No additional client-side validation will be implemented for pre-signed URLs. |
| 13 | +3. Provide additional client-side validation with server-side validation as fallback or just rely entirely on server-side validation from S3? No additional client-side validation will be implemented for pre-signed URLs. |
17 | 14 |
|
18 | 15 | ### Discussions Addressed
|
19 | 16 |
|
20 |
| -1. **Credential Signing Bypass:** Are there alternative methods to skip signing, such as using NoOpSigner(), instead of setting additional Execution attributes? |
21 |
| - - Added the use of NoOpSigner() in the design doc. |
| 17 | +1. Are there alternative methods to skip signing, such as using NoOpSigner(), instead of setting additional Execution attributes? Added the use of NoOpSigner() in the design doc. |
22 | 18 |
|
23 |
| -2. **Checksum Support:** Does the S3 response include a checksum? If so, should checksum-related support be implemented in this project, or deferred until after Transfer Manager support is added? |
24 |
| - - S3 Response doesn't include checksum. |
| 19 | +2. Does the S3 response include a checksum? If so, should checksum-related support be implemented in this project, or deferred until after Transfer Manager support is added? S3 Response doesn't include checksum. |
25 | 20 |
|
26 |
| -3. **Helper API Naming:** What should we name the Helper API? |
27 |
| - - Options include PresignedURLManager or PresignedUrlExtension. |
28 |
| - - Will be addressed in the Surface API Review. |
| 21 | +3. What should we name the Helper API? Options include PresignedURLManager or PresignedUrlExtension. Will be addressed in the Surface API Review. |
29 | 22 |
|
30 | 23 | ## Review Meeting: 06/23/2024
|
31 | 24 | **Attendees**: John, Zoe, Dongie, Bole, Ran, Saranya, Alex, David
|
32 | 25 |
|
33 | 26 | ### Decisions Addressed
|
34 | 27 |
|
35 |
| -1. **Request Design Pattern:** Should PresignedUrlGetObjectRequest extend S3Request/SdkRequest? |
36 |
| - - Decided to use a standalone request class with minimal parameters (presignedUrl, rangeStart, rangeEnd) to avoid exposing incompatible configurations like credentials and signers. Internally convert to S3Request for ClientHandler compatibility. |
| 28 | +1. Should PresignedUrlGetObjectRequest extend S3Request/SdkRequest? Decided to use a standalone request class with minimal parameters (presignedUrl, rangeStart, rangeEnd) to avoid exposing incompatible configurations like credentials and signers. Internally convert to S3Request for ClientHandler compatibility. |
37 | 29 |
|
38 |
| -2. **Endpoint Resolution Bypass:** Replace IS_DISCOVERED_ENDPOINT execution attribute with a more semantically appropriate solution. |
39 |
| - - Decided to introduce new SKIP_ENDPOINT_RESOLUTION execution attribute specifically for presigned URL scenarios where endpoint resolution should be bypassed, as IS_DISCOVERED_ENDPOINT is tied to deprecated endpoint discovery feature. |
40 |
| - |
41 |
| -3. **Range Parameter Design:** Use separate rangeStart/rangeEnd fields vs single range string parameter. |
42 |
| - - Decided to use separate rangeStart and rangeEnd Long fields for better user experience, as start/end is more intuitive than string parsing. |
| 30 | +2. Replace IS_DISCOVERED_ENDPOINT execution attribute with a more semantically appropriate solution. Decided to introduce new SKIP_ENDPOINT_RESOLUTION execution attribute specifically for presigned URL scenarios where endpoint resolution should be bypassed, as IS_DISCOVERED_ENDPOINT is tied to deprecated endpoint discovery feature. |
43 | 31 |
|
| 32 | +3. Use separate rangeStart/rangeEnd fields vs single range string parameter. Decided to use separate rangeStart and rangeEnd Long fields for better user experience, as start/end is more intuitive than string parsing. |
0 commit comments