History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
Service URL/v3/push/package/upload
.zip, .txt, or .csv file within 100 MB..zip file requirements: can contain single .txt or .csv files but not folders..txt file requirements: encoded in UTF-8; one account ([2, 100] characters) per row..csv file requirements: one column only; one account ([2, 100] characters) per row.Parameter | Type | Required | Description |
file | form-data | Yes | Account package format and size: .zip, .txt, or .csv file within 100 MB.zip file requirements: can contain single .txt or .csv files but not folders.txt file requirements: encoded in UTF-8; one account ([2, 100] characters) per row.csv file requirements: one column only; one account ([2, 100] characters) per row |
Parameter | Type | Required | Description |
retCode | Integer | Yes | Error code |
errMsg | String | Yes | Error message of a request error |
uploadId | Integer | Yes | When a file is uploaded, a positive integer is returned, which represents the ID of the uploaded file ( uploadId). It is provided to the push API for account package push. |
import base64from pip._vendor import requestsfrom pip._vendor.urllib3 import encode_multipart_formdatadef upload(url, filePath, accessId, secret, data={}, header={}):openFile = open(filePath, 'rb')data['file'] = (openFile.name, openFile.read())encode_data = encode_multipart_formdata(data)data = encode_data[0]header['Content-Type'] = encode_data[1]authInfo = accessId + ":" + secretheader['Authorization'] = "Basic " + str(base64.b64encode(bytes(authInfo, encoding="utf8")),encoding="utf8")r = requests.post(url, headers=header, data=data)print(r.json())
func Upload(url string, filePath string, accessId string, secret string)(resp string , err error) {fp, err := os.Open(filePath)if err != nil {return resp, err}defer fp.Close()body := &bytes.Buffer{}writer := multipart.NewWriter(body)defer writer.Close()part, err := writer.CreateFormFile("file", filepath.Base(fp.Name()))if err != nil {return resp, err}io.Copy(part, fp)writer.Close()httpReq, err := http.NewRequest(http.MethodPost, url, body)if err != nil {return resp, err}httpReq.Header.Add("Content-Type", writer.FormDataContentType())authInfo := base64.StdEncoding.EncodeToString([]byte(accessId + ":" + secret))httpReq.Header.Add("Authorization", fmt.Sprintf("Basic %s", authInfo))cli := &http.Client{}httpResp, err := cli.Do(httpReq)if err != nil {return resp, err}defer httpResp.Body.Close()data, err := ioutil.ReadAll(httpResp.Body)if err != nil {return resp, err}if httpResp.StatusCode != http.StatusOK {return resp, fmt.Errorf("response error, status: %s, body: %s", httpResp.Status, string(data))}resp = string(data)return resp, nil}
public string Upload(string url, string filePath, uint accessId, string secretKey){var tmp = accessId.ToString() + ":" + secretKey;var sign = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(tmp));MultipartFormDataContent form = new MultipartFormDataContent();var content = new StreamContent(new FileStream(filePath, FileMode.Open));content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data"){Name = "file",FileName = Path.GetFileName(filePath)};form.Add(content);using(HttpClient client = new HttpClient()){client.DefaultRequestHeaders.Add("Authorization","Basic " + sign);client.DefaultRequestHeaders.ExpectContinue = true;var response = (client.PostAsync(url, form)).Result;var result = response.Content.ReadAsStringAsync().Result;if (response.StatusCode != HttpStatusCode.OK) {throw new Exception(result);}return result;}}
function upload($url, $file, $accessId, $secretkey) {$sign = base64_encode($accessId . ":" . $secretKey);$headers = array("Content-type: multipart/form-data", "Authorization: Basic " . $sign);$cfile = new \\CURLFile($file,'multipart/form-data',basename($file));$options = array(CURLOPT_HTTPHEADER => $headers,CURLOPT_HEADER => 0,CURLOPT_SSL_VERIFYPEER => false,CURLOPT_SSL_VERIFYHOST => 0,CURLOPT_POST => 1,CURLOPT_URL => $url,CURLOPT_RETURNTRANSFER => 1,CURLOPT_TIMEOUT => 10000,CURLOPT_POSTFIELDS => array("file" => $cfile));$ch = curl_init();curl_setopt_array($ch, $options);$ret = curl_exec($ch);$error = curl_error($ch);$info = curl_getinfo($ch);curl_close($ch);if ($error != "") {throw new \\Exception($error);}$code = $info["http_code"];if ($code != 200) {throw new \\Exception("status: " . $code . ", message: " . $ret);}return $ret;}```
public JSONObject Upload(String url, String filePath, String accessId, String secret) {OkHttpClient client = new OkHttpClient();File file = new File(filePath);RequestBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM).addFormDataPart("file", file.getName(),RequestBody.create(MediaType.parse("multipart/form-data"), file)).build();String authString = accessId+ ":" + secret;byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());String authStringEnc = new String(authEncBytes);Request.Builder builder = new Request.Builder().url(url).post(requestBody).addHeader("Authorization", "Basic " + authStringEnc);Request request = builder.build();JSONObject jsonRet = null;Response response = null;try {response = client.newCall(request).execute();if(response.code() == 200){String retMsg = response.body().string();jsonRet = new JSONObject(retMsg);}else{jsonRet = new JSONObject();jsonRet.put("retCode", 10101);jsonRet.put("errMsg", "CallApiError,HttpStatus Code:" + response.code());}} catch (IOException e) {jsonRet = new JSONObject();jsonRet.put("retCode", 10100);jsonRet.put("errMsg", e.getMessage());}finally {if (response != null) {response.close();}}return jsonRet;}
struct memory {char *data;size_t size;memory(): data(NULL), size(0) {}~memory() {if (data) {free(data);}}};static size_t callback(void *data, size_t size, size_t nmemb, void *userp){size_t realsize = size * nmemb;struct memory *mem = (struct memory *)userp;char *ptr = (char *)realloc(mem->data, mem->size + realsize + 1);if(ptr == NULL)return 0;mem->data = ptr;memcpy(&(mem->data[mem->size]), data, realsize);mem->size += realsize;mem->data[mem->size] = 0;return realsize;}std::string upload(const std::string url, const std::string &file, uint32_t accessId, const std::string &secretKey, std::string &err) {CURL *pcurl = curl_easy_init();if (pcurl == NULL) {err.assign("curl_easy_init error");return "";}struct curl_httppost *post = NULL;struct curl_httppost *last = NULL;std::string base;//for unix/linuxsize_t pos = file.find_last_of("/");if (pos >= 0) {base = file.substr(pos + 1);}//for windowspos = file.find_last_of("\\\\");if (pos >= 0) {return base = file.substr(pos + 1);}curl_formadd(&post, &last, CURLFORM_PTRNAME, "file", CURLFORM_FILE, file.c_str(), CURLFORM_FILENAME, base.c_str(), CURLFORM_END);char buf[128];char dst[128];char authInfo[256];snprintf(buf, sizeof(buf), "%u:%s", accessId, secretKey.c_str());Base64encode(dst, buf, strlen(buf));snprintf(authInfo, sizeof(authInfo), "Authorization: Basic %s", dst);curl_slist *plist = NULL;plist = curl_slist_append(plist, "Content-Type: multipart/form-data");plist = curl_slist_append(plist, authInfo);curl_easy_setopt(pcurl, CURLOPT_CONNECTTIMEOUT, 10);curl_easy_setopt(pcurl, CURLOPT_TIMEOUT, 10);curl_easy_setopt(pcurl, CURLOPT_POST, true);curl_easy_setopt(pcurl, CURLOPT_HTTPHEADER, plist);curl_easy_setopt(pcurl, CURLOPT_URL, url.c_str());curl_easy_setopt(pcurl, CURLOPT_HTTPPOST, post);curl_easy_setopt(pcurl, CURLOPT_WRITEFUNCTION, callback);struct memory chunk;curl_easy_setopt(pcurl, CURLOPT_WRITEDATA, (void *)&chunk);curl_easy_setopt(pcurl, CURLOPT_NOSIGNAL, 1);CURLcode res = curl_easy_perform(pcurl);curl_slist_free_all(plist);// Check for errorsif (res != CURLE_OK){char buf[1024];snprintf(buf, sizeof(buf), "curl_easy_perform error: %s", curl_easy_strerror(res));err.assign(buf);curl_easy_cleanup(pcurl);return "";}long status = 0;curl_easy_getinfo(pcurl, CURLINFO_RESPONSE_CODE, &status);curl_easy_cleanup(pcurl);if (status != 200) {char buf[1024];snprintf(buf, sizeof(buf), "%ld %s", status, chunk.data);err.assign(buf);return "";}std::string ret;ret.assign(chunk.data);return ret;}```
フィードバック