{"id":29926766,"url":"https://github.com/ecomfe/baidubce-sdk","last_synced_at":"2025-08-11T22:38:42.862Z","repository":{"id":32979169,"uuid":"36603077","full_name":"ecomfe/baidubce-sdk","owner":"ecomfe","description":"Baidu Cloud Engine Node.js SDK","archived":false,"fork":false,"pushed_at":"2020-09-01T03:19:40.000Z","size":11768,"stargazers_count":28,"open_issues_count":5,"forks_count":57,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-25T08:05:14.446Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://sdk.baidubce.tk/index.html#/!bos/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ecomfe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-31T12:58:13.000Z","updated_at":"2020-04-24T16:58:21.000Z","dependencies_parsed_at":"2022-08-07T19:16:34.141Z","dependency_job_id":null,"html_url":"https://github.com/ecomfe/baidubce-sdk","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ecomfe/baidubce-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomfe%2Fbaidubce-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomfe%2Fbaidubce-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomfe%2Fbaidubce-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomfe%2Fbaidubce-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ecomfe","download_url":"https://codeload.github.com/ecomfe/baidubce-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ecomfe%2Fbaidubce-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268392218,"owners_count":24243297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-02T12:43:11.130Z","updated_at":"2025-08-02T12:43:56.917Z","avatar_url":"https://github.com/ecomfe.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## baidubce-sdk\n\nBaidu Cloud Engine Node.js SDK\n\n1. BS (Baidu Cloud Storage)\n2. BOS (Baidu Object Storage)\n3. BCC (Baidu Cloud Compute)\n4. BFR (Baidu Face Recognition)\n5. Media\n\n\u003chttp://bce.baidu.com/index.html\u003e\n\n## Install\n\n```\nnpm i baidubce-sdk\n```\n\n## Usage\n\n### createBucket\n\n```\nvar bce = require('baidubce-sdk');\n\nvar config = {\n    credentials: {\n        ak: 'ak',\n        sk: 'sk'\n    },\n    endpoint: 'http://10.105.97.15'\n};\nvar bucket = 'this-is-a-bucket';\n\nvar client = new bce.BosClient(config);\nclient.createBucket(bucket)\n    .then(function(response) {\n        console.log(response);\n    })\n    .then(function() {\n        return client.deleteBucket(bucket);\n    })\n    .catch(function(error) {\n        console.error(error);\n    });\n```\n\n### putObject\n\n常用接口：\n\n1. putObjectFromString\n2. putObjectFromFile\n\n```\nvar bce = require('baidubce-sdk');\n\nvar config = {\n    credentials: {\n        ak: 'ak',\n        sk: 'sk'\n    },\n    endpoint: 'http://10.105.97.15'\n};\n\nvar bucket = 'this-is-a-bucket';\nvar key = 'hello_world.js';\n\nvar client = new bce.BosClient(config);\nclient.createBucket(bucket)\n    .then(function() {\n        return client.putObjectFromFile(bucket, key, __filename);\n    })\n    .then(function() {\n        return client.getObjectMetadata(bucket, key);\n    })\n    .then(function(response) {\n        console.log(response);\n    })\n    .catch(function(error) {\n        console.error(error);\n    });\n```\n\n### multipartUpload\n\n常用接口：\n\n1. initiateMultipartUpload\n2. uploadPartFromFile\n3. completeMultipartUpload\n\n```\nvar Q = require('q');\nvar bce = require('baidubce-sdk');\n\nvar config = {\n    credentials: {\n        ak: 'ak',\n        sk: 'sk'\n    },\n    endpoint: 'http://10.105.97.15'\n};\n\nvar bucket = 'this-is-a-bucket';\nvar key = 'large_file';\n\nvar large_file = 'this/is/a/large/file/path';\nvar filesize = fs.lstatSync(large_file).size;\n\nvar upload_id = null;\n\nvar client = new bce.BosClient(config);\nclient.createBucket(bucket)\n    .then(function() {\n        return client.initiateMultipartUpload(bucket, key);\n    })\n    .then(function(response) {\n        upload_id = response.body.uploadId;\n        \n        var left_size = filesize;\n        var offset = 0;\n        var part_number = 1;\n        \n        var defers = [];\n        while (left_size \u003e 0) {\n            var part_size = Math.min(left_size, 5 * 1024 * 1024);\n            defers.push(client.uploadPartFromFile(\n                bucket, file, upload_id,\n                part_number, part_size, large_file, offset\n            ));\n\n            left_size -= part_size;\n            offset += part_size;\n            part_number += 1;\n        }\n        \n        return Q.all(defers);\n    })\n    .then(function(all_response) {\n        var part_list = [];\n        for (var i = 0; i \u003c all_response.length; i ++) {\n            var response = all_response[i];\n            part_list.push({\n                partNumber: i + 1,\n                eTag: response.http_headers.etag\n            });\n        }\n        return client.completeMultipartUpload(bucket, key, upload_id, part_list);\n    })\n    .then(function(response) {\n        console.log(response)\n    })\n    .catch(function(error) {\n        console.error(error);\n    });\n```\n\n## Browser Usage\n\nUse the `putObjectFromBlob` api.\n\n```\nbrowserify -s baidubce-sdk index.js -o baidubce-sdk.bundle.js\n```\n\n```\nvar sdk = require('./baidubce-sdk.bundle');\nvar $ = require('jquery');\n\n$('files').on('change', function (evt) {\n    var file = evt.target.files[0];\n\n    var client = new sdk.BosClient(getBOSConfig());\n    var bucket = getBucket();\n    var key = file.name;\n    var blob = file;\n\n    var ext = key.split(/\\./g).pop();\n    var mimeType = sdk.MimeType.guess(ext);\n    if (/^text\\//.test(mimeType)) {\n        mimeType += '; charset=UTF-8';\n    }\n    var options = {\n        'Content-Type': mimeType\n    };\n    var promise = client.putObjectFromBlob(bucket, key, blob, options);\n    client._httpAgent._req.xhr.upload.onprogress = function (evt) {\n        if (evt.lengthComputable) {\n            $('#g_progress').val(evt.loaded / evt.total);\n        }\n    };\n    promise.then(function (res) {\n        $('#g_progress').val(1);\n        var url = client.generatePresignedUrl(bucket, key)\n        $('#g_url').html('\u003ca href=\"' + url + '\" target=\"_blank\"\u003e下载地址\u003c/a\u003e');\n    })\n    .catch(function (err) {\n        console.error(err);\n    });\n});\n```\n### Others\n\nMore api usages please refer\n\n* [test/sdk/bos_client.spec.js](test/sdk/bos_client.spec.js)\n* [test/sdk/bcs_client.spec.js](test/sdk/bcs_client.spec.js)\n* [test/sdk/bcc_client.spec.js](test/sdk/bcc_client.spec.js)\n* [test/sdk/face_client.spec.js](test/sdk/face_client.spec.js)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecomfe%2Fbaidubce-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fecomfe%2Fbaidubce-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fecomfe%2Fbaidubce-sdk/lists"}