Buckets:
| // Copyright 2023 The Emscripten Authors. All rights reserved. | |
| // Emscripten is available under two separate licenses, the MIT license and the | |
| // University of Illinois/NCSA Open Source License. Both these licenses can be | |
| // found in the LICENSE file. | |
| // Upload a file by POST'ing with ?file=xx in the query string and then | |
| // attempt to download the file | |
| void onError(emscripten_fetch_t *fetch) { | |
| printf("onError: %d %s\n", fetch->status, fetch->statusText); | |
| assert(false); | |
| } | |
| void onGetSuccess(emscripten_fetch_t *fetch) { | |
| printf("onGetSuccess URL=%s status=%d numBytes=%llu\n", | |
| fetch->url, | |
| fetch->status, | |
| fetch->numBytes); | |
| assert(fetch->status == 200); | |
| printf("data: %.*s\n", (int)fetch->numBytes, fetch->data); | |
| assert(strncmp(fetch->data, "Hello, world!", fetch->numBytes) == 0); | |
| exit(0); | |
| } | |
| void doGet() { | |
| emscripten_fetch_attr_t attr; | |
| emscripten_fetch_attr_init(&attr); | |
| attr.attributes = EMSCRIPTEN_FETCH_LOAD_TO_MEMORY; | |
| attr.onsuccess = onGetSuccess; | |
| attr.onerror = onError; | |
| emscripten_fetch(&attr, "newfile.txt"); | |
| } | |
| void onPostSuccess(emscripten_fetch_t *fetch) { | |
| printf("onPostSuccess URL=%s status=%d\n", fetch->url, fetch->status); | |
| assert(fetch->status == 200); | |
| // The data is now available at fetch->data[0] through fetch->data[fetch->numBytes-1]; | |
| emscripten_fetch_close(fetch); // Free data associated with the fetch. | |
| // Now attempt to GET the POST'ed file | |
| doGet(); | |
| } | |
| int main() { | |
| // Upload a file using `POST` with `?file=` | |
| emscripten_fetch_attr_t attr; | |
| emscripten_fetch_attr_init(&attr); | |
| strcpy(attr.requestMethod, "POST"); | |
| attr.onsuccess = onPostSuccess; | |
| attr.onerror = onError; | |
| attr.requestData = "Hello, world!"; | |
| attr.requestDataSize = strlen(attr.requestData); | |
| emscripten_fetch(&attr, "upload?file=newfile.txt"); | |
| // This return code should be ignored | |
| return 99; | |
| } | |
Xet Storage Details
- Size:
- 2.01 kB
- Xet hash:
- 5009f472ab0bef4199c0186c0cb81e152ce18ee71460142da5becd9ad75aefad
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.