{"id":19411471,"url":"https://github.com/volcengine/ve-tos-java-sdk","last_synced_at":"2025-04-24T10:33:37.568Z","repository":{"id":39224385,"uuid":"432937813","full_name":"volcengine/ve-tos-java-sdk","owner":"volcengine","description":"Volcengine TOS Java SDK","archived":false,"fork":false,"pushed_at":"2024-11-08T04:19:49.000Z","size":12123,"stargazers_count":8,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-11-08T05:21:20.343Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/volcengine.png","metadata":{"files":{"readme":"README-Android.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-29T07:03:44.000Z","updated_at":"2024-11-08T04:18:40.000Z","dependencies_parsed_at":"2023-02-09T10:00:36.542Z","dependency_job_id":"85389efc-fc70-473c-87ee-b826d777560d","html_url":"https://github.com/volcengine/ve-tos-java-sdk","commit_stats":{"total_commits":38,"total_committers":4,"mean_commits":9.5,"dds":0.5,"last_synced_commit":"bc83beec5520d772942e34ab94c6cd77b8bbb6db"},"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcengine%2Fve-tos-java-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcengine%2Fve-tos-java-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcengine%2Fve-tos-java-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/volcengine%2Fve-tos-java-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/volcengine","download_url":"https://codeload.github.com/volcengine/ve-tos-java-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223950244,"owners_count":17230439,"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","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":"2024-11-10T12:21:33.795Z","updated_at":"2025-04-24T10:33:37.562Z","avatar_url":"https://github.com/volcengine.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 火山引擎 TOS Android SDK\n## 简介\nTOS Android SDK 为 Android 开发者提供了访问火山引擎对象存储服务TOS（Tinder Object Storage）的系列接口。本文档将给出TOS桶和对象的基本操作代码，供开发者参考，具体API文档请参考[xxx]()\n\n## 安装\n### 最低依赖\n- Java 1.8 或更高\n### Gradle 引入\n```xml\ndependencies {\n        implementation 'com.volcengine:ve-tos-android-sdk:2.8.8'\n}\n```\n### 其他配置\n本 Android SDK 基于 Java8 构建，支持的 minSDK 版本为 API 21。对于 minSDK 版本低于 API 26（不包括26）的 Android 应用，需额外进行如下设置才能正常运行。\n\n#### 相关依赖\n- Gradle 6.1.1 或更高版本\n- Android Gradle 插件 4.0.0 或更高版本\n\n在您的安卓应用模块（通常在 app 目录下）的 build.gradle 文件中，添加如下代码\n\n```groovy\nandroid {\n    compileOptions {\n        coreLibraryDesugaringEnabled true\n        \n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n}\n\ndependencies {\n    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'\n}\n```\n\n具体可参考 https://developer.android.com/studio/write/java8-support\n\n## 快速入门\n本节介绍，如何通过TOS Android SDK来完成常见的操作，如创建桶，上传、下载和删除对象等。\n### 初始化TOSV2客户端\n初始化TOSV2Client实例之后，才可以向TOS服务发送HTTP/HTTPS请求。\n初始化客户端时，需要带上accesskey，secretkey，endpoint和region。初始化代码如下：\n\n```java\nString region = \"region to access\";\nString endpoint = \"endpoint to access\";\nString accessKey = \"your access key\";\nString secretKey = \"your secret key\";\n\nTOSV2 client = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);\n```\n\n### 创建桶\n桶是TOS的全局唯一的命名空间，相当于数据的容器，用来储存对象数据。如下代码展示如何创建一个新桶：\n\n```java\nString region = \"region to access\";\nString endpoint = \"endpoint to access\";\nString accessKey = \"your access key\";\nString secretKey = \"your secret key\";\nString bucket = \"your bucket name\";\n\nTOSV2 client = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);\n\nCreateBucketV2Input input = new CreateBucketV2Input().setBucket(bucket);\ntry{\n    CreateBucketV2Output output = client.createBucket(input);\n    System.out.println(\"Created bucket location is \" + output.getLocation());\n} catch (TosException e) {\n    System.out.println(\"Create bucket failed\");\n    e.printStackTrace();\n}\n```\n\n### 上传对象\n新建桶成功后，可以往桶中上传对象，如下展示如何上传一个对象到已创建的桶中：\n\n```java\nString region = \"region to access\";\nString endpoint = \"endpoint to access\";\nString accessKey = \"your access key\";\nString secretKey = \"your secret key\";\nString bucket = \"your bucket name\";\n\nTOSV2 client = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);\n\nString data = \"1234567890abcdefghijklmnopqrstuvwxyz~!@#$%^\u0026*()_+\u003c\u003e?,./   :'1234567890abcdefghijklmnopqrstuvwxyz~!@#$%^\u0026*()_+\u003c\u003e?,./   :'\";\nInputStream stream = new ByteArrayInputStream(data.getBytes());\nString key = \"object-crud-\"+System.currentTimeMillis();\n\ntry{\n    PutObjectBasicInput basicInput = new PutObjectBasicInput().setBucket(bucket).setKey(key);\n    PutObjectInput input = new PutObjectInput().setPutObjectBasicInput(basicInput).setContent(stream);\n    PutObjectOutput output = client.putObject(input);\n    System.out.println(\"Put object success, the object's etag is \" + output.getEtag());\n} catch (TosException e) {\n    System.out.println(\"Put object failed\");\n    e.printStackTrace();\n}\n```\n\n### 下载对象\n如下展示如何从桶中下载一个已经存在的对象到本地文件：\n\n```java\nString region = \"region to access\";\nString endpoint = \"endpoint to access\";\nString accessKey = \"your access key\";\nString secretKey = \"your secret key\";\nString bucket = \"your bucket name\";\nString key = \"your key name\";\nString filePath = \"your local file name to store downloaded file\"; // eg. \"/home/user/aaa.txt\"\n\nTOSV2 client = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);\n\nGetObjectV2Input input = new GetObjectV2Input().setBucket(bucket).setKey(key);\ntry (GetObjectV2Output object = client.getObject(input);\n        FileOutputStream writer = new FileOutputStream(filePath)) {\n    if (object.getContent() != null) {\n        int once, total = 0;\n        byte[] buffer = new byte[4096];\n        InputStream inputStream = object.getContent();\n        while ((once = inputStream.read(buffer)) \u003e 0) {\n            total += once;\n            writer.write(buffer, 0, once);\n        }\n        System.out.println(\"object's size is \" + total + \" bytes\");\n    } else {\n        // key不存在返回null\n        System.out.println(\"key \" + key + \" not found\");\n    }\n} catch (TosException | IOException e) {\n    System.out.println(\"getObject error\");\n    e.printStackTrace();\n}\n```\n\n### 删除对象\n如下展示如何从桶中删除一个已经存在的对象：\n\n```java\nString region = \"region to access\";\nString endpoint = \"endpoint to access\";\nString accessKey = \"your access key\";\nString secretKey = \"your secret key\";\nString bucket = \"your bucket name\";\nString key = \"your key name\";\n\nTOSV2 client = new TOSV2ClientBuilder().build(region, endpoint, accessKey, secretKey);\n\nDeleteObjectInput input = new DeleteObjectInput().setBucket(bucket).setKey(key);\ntry {\n    DeleteObjectOutput output = client.deleteObject(input);\n    System.out.println(\"Delete success, \" + output);\n} catch (TosException e) {\n    System.out.println(\"Delete failed\");\n    e.printStackTrace();\n}\n```\n\n## 开源许可\n[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolcengine%2Fve-tos-java-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvolcengine%2Fve-tos-java-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvolcengine%2Fve-tos-java-sdk/lists"}