|
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