|
41 | 41 | * <th>Strategy</th> |
42 | 42 | * <th>Factory Method(s)</th> |
43 | 43 | * <th>Description</th> |
| 44 | + * <th>Transport(s) Supported</th> |
| 45 | + * <th>Considerations</th> |
44 | 46 | * <th>Retry Support</th> |
45 | | - * <th>Transports Supported</th> |
46 | 47 | * <th>Cloud Storage API used</th> |
47 | | - * <th>Considerations</th> |
48 | 48 | * </tr> |
49 | 49 | * <tr> |
50 | 50 | * <td>Default (Chunk based upload)</td> |
|
54 | 54 | * full or close. Buffer size is configurable via |
55 | 55 | * {@link DefaultBlobWriteSessionConfig#withChunkSize(int)} |
56 | 56 | * </td> |
57 | | - * <td> |
58 | | - * Each chunk is retried up to the limitations specified in |
59 | | - * {@link StorageOptions#getRetrySettings()} |
60 | | - * </td> |
61 | 57 | * <td>gRPC</td> |
62 | | - * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
63 | 58 | * <td>The network will only be used for the following operations: |
64 | 59 | * <ol> |
65 | 60 | * <li>Creating the Resumable Upload Session</li> |
|
71 | 66 | * </li> |
72 | 67 | * </ol> |
73 | 68 | * </td> |
| 69 | + * <td> |
| 70 | + * Each chunk is retried up to the limitations specified in |
| 71 | + * {@link StorageOptions#getRetrySettings()} |
| 72 | + * </td> |
| 73 | + * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
74 | 74 | * </tr> |
75 | 75 | * <tr> |
76 | 76 | * <td>Buffer to disk then upload</td> |
|
85 | 85 | * Buffer bytes to a temporary file on disk. On {@link WritableByteChannel#close() close()} |
86 | 86 | * upload the entire files contents to Cloud Storage. Delete the temporary file. |
87 | 87 | * </td> |
88 | | - * <td> |
89 | | - * Upload the file in the fewest number of RPC possible retrying within the limitations |
90 | | - * specified in {@link StorageOptions#getRetrySettings()} |
91 | | - * </td> |
92 | 88 | * <td>gRPC</td> |
93 | | - * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
94 | 89 | * <td> |
95 | 90 | * <ol> |
96 | 91 | * <li>A Resumable Upload Session will be used to upload the file on disk.</li> |
|
100 | 95 | * </li> |
101 | 96 | * </ol> |
102 | 97 | * </td> |
| 98 | + * <td> |
| 99 | + * Upload the file in the fewest number of RPC possible retrying within the limitations |
| 100 | + * specified in {@link StorageOptions#getRetrySettings()} |
| 101 | + * </td> |
| 102 | + * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
103 | 103 | * </tr> |
104 | 104 | * <tr> |
105 | 105 | * <td>Journal to disk while uploading</td> |
|
110 | 110 | * retryable error query the offset of the Resumable Upload Session, then open the recovery |
111 | 111 | * file from the offset and transmit the bytes to Cloud Storage. |
112 | 112 | * </td> |
113 | | - * <td> |
114 | | - * Opening the stream for upload will be retried up to the limitations specified in {@link StorageOptions#getRetrySettings()} |
115 | | - * All bytes are buffered to disk and allow for recovery from any arbitrary offset. |
116 | | - * </td> |
117 | 113 | * <td>gRPC</td> |
118 | | - * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
119 | 114 | * <td> |
120 | 115 | * <ol> |
121 | 116 | * <li> |
|
133 | 128 | * </li> |
134 | 129 | * </ol> |
135 | 130 | * </td> |
| 131 | + * <td> |
| 132 | + * Opening the stream for upload will be retried up to the limitations specified in {@link StorageOptions#getRetrySettings()} |
| 133 | + * All bytes are buffered to disk and allow for recovery from any arbitrary offset. |
| 134 | + * </td> |
| 135 | + * <td><a href="https://cloud.google.com/storage/docs/resumable-uploads">Resumable Upload</a></td> |
136 | 136 | * </tr> |
137 | 137 | * <tr> |
138 | 138 | * <td>Parallel Composite Upload</td> |
|
141 | 141 | * Break the stream of bytes into smaller part objects uploading each part in parallel. Then |
142 | 142 | * composing the parts together to make the ultimate object. |
143 | 143 | * </td> |
144 | | - * <td> |
145 | | - * Automatic retires will be applied for the following: |
146 | | - * <ol> |
147 | | - * <li>Creation of each individual part</li> |
148 | | - * <li>Performing an intermediary compose</li> |
149 | | - * <li>Performing a delete to cleanup each part and intermediary compose object</li> |
150 | | - * </ol> |
151 | | - * |
152 | | - * Retrying the creation of the final object is contingent upon if an appropriate precondition |
153 | | - * is supplied when calling {@link Storage#blobWriteSession(BlobInfo, BlobWriteOption...)}. |
154 | | - * Either {@link BlobTargetOption#doesNotExist()} or {@link Storage.BlobTargetOption#generationMatch(long)} |
155 | | - * should be specified in order to make the final request idempotent. |
156 | | - * <p>Each operation will be retried up to the limitations specified in {@link StorageOptions#getRetrySettings()} |
157 | | - * </td> |
158 | 144 | * <td>gRPC</td> |
159 | 145 | * <td> |
160 | | - * <ul> |
161 | | - * <li><a href="https://cloud.google.com/storage/docs/parallel-composite-uploads">Parallel composite uploads</a></li> |
162 | | - * <li><a href="https://cloud.google.com/storage/docs/uploading-objects-from-memory">Direct uploads</a></li> |
163 | | - * <li><a href="https://cloud.google.com/storage/docs/composite-objects">Compose</a></li> |
164 | | - * <li><a href="https://cloud.google.com/storage/docs/deleting-objects">Object delete</a></li> |
165 | | - * </ul> |
166 | | - * </td> |
167 | | - * <td> |
168 | 146 | * <ol> |
169 | 147 | * <li> |
170 | 148 | * Performing parallel composite uploads costs more money. |
|
217 | 195 | * </li> |
218 | 196 | * </ol> |
219 | 197 | * </td> |
| 198 | + * <td> |
| 199 | + * Automatic retires will be applied for the following: |
| 200 | + * <ol> |
| 201 | + * <li>Creation of each individual part</li> |
| 202 | + * <li>Performing an intermediary compose</li> |
| 203 | + * <li>Performing a delete to cleanup each part and intermediary compose object</li> |
| 204 | + * </ol> |
| 205 | + * |
| 206 | + * Retrying the creation of the final object is contingent upon if an appropriate precondition |
| 207 | + * is supplied when calling {@link Storage#blobWriteSession(BlobInfo, BlobWriteOption...)}. |
| 208 | + * Either {@link BlobTargetOption#doesNotExist()} or {@link Storage.BlobTargetOption#generationMatch(long)} |
| 209 | + * should be specified in order to make the final request idempotent. |
| 210 | + * <p>Each operation will be retried up to the limitations specified in {@link StorageOptions#getRetrySettings()} |
| 211 | + * </td> |
| 212 | + * <td> |
| 213 | + * <ul> |
| 214 | + * <li><a href="https://cloud.google.com/storage/docs/parallel-composite-uploads">Parallel composite uploads</a></li> |
| 215 | + * <li><a href="https://cloud.google.com/storage/docs/uploading-objects-from-memory">Direct uploads</a></li> |
| 216 | + * <li><a href="https://cloud.google.com/storage/docs/composite-objects">Compose</a></li> |
| 217 | + * <li><a href="https://cloud.google.com/storage/docs/deleting-objects">Object delete</a></li> |
| 218 | + * </ul> |
| 219 | + * </td> |
220 | 220 | * </tr> |
221 | 221 | * </table> |
222 | 222 | * |
|
0 commit comments