{"id":21358858,"url":"https://github.com/gameframex/com.gameframex.unity.objectstorage","last_synced_at":"2025-03-16T06:17:54.769Z","repository":{"id":244565131,"uuid":"815071980","full_name":"GameFrameX/com.gameframex.unity.objectstorage","owner":"GameFrameX","description":"对象存储基础接口","archived":false,"fork":false,"pushed_at":"2024-08-04T04:02:40.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T18:51:07.690Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/GameFrameX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-06-14T09:39:13.000Z","updated_at":"2024-08-04T04:02:43.000Z","dependencies_parsed_at":"2024-11-22T05:34:22.911Z","dependency_job_id":null,"html_url":"https://github.com/GameFrameX/com.gameframex.unity.objectstorage","commit_stats":null,"previous_names":["alianblank/com.alianblank.gameframex.unity.objectstorage","alianblank/com.gameframex.unity.objectstorage","gameframex/com.gameframex.unity.objectstorage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.objectstorage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.objectstorage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.objectstorage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GameFrameX%2Fcom.gameframex.unity.objectstorage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GameFrameX","download_url":"https://codeload.github.com/GameFrameX/com.gameframex.unity.objectstorage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830950,"owners_count":20354856,"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-22T05:22:40.312Z","updated_at":"2025-03-16T06:17:54.747Z","avatar_url":"https://github.com/GameFrameX.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿## HOMEPAGE\n\nGameFrameX 的 Object Storage 组件\n\n**Object Storage 组件 (Object Storage Component)** - 提供Object Storage组件相关的接口。\n\n# 使用文档(文档编写于GPT4)\n\n# 功能说明文档\n\n## 接口和类概览\n\n本文档涵盖了以下接口和类的功能说明：\n\n1. `IObjectStorageManager` - 定义了对象存储管理器的初始化方法。\n2. `IObjectStorageUploadManager` - 扩展了 `IObjectStorageManager`，添加了上传相关的功能。\n3. `BaseObjectStorageUploadManager` - 抽象基类，提供了上传管理器的基本框架。\n4. `ObjectStorageUploadFactory` - 静态工厂类，用于创建和初始化上传管理器实例。\n\n## 接口和类详细说明\n\n### IObjectStorageManager\n\n#### 功能描述\n\n`IObjectStorageManager` 接口定义了对象存储管理器的初始化方法，为后续的对象存储操作提供必要的环境配置。\n\n#### 方法说明\n\n- `Init(string accessKey, string secretKey, string bucketName)`\n    - 初始化对象存储管理器，设置访问密钥、秘密密钥和存储桶名称。\n\n### IObjectStorageUploadManager\n\n#### 功能描述\n\n`IObjectStorageUploadManager` 接口继承自 `IObjectStorageManager`，并在此基础上增加了上传文件和目录的功能。\n\n#### 方法说明\n\n- `SetSavePath(string savePath)`\n    - 设置上传文件的目标存储路径。\n- `UploadDirectory(string localDirectory)`\n    - 将指定本地目录下的所有文件上传到对象存储服务。\n\n### BaseObjectStorageUploadManager\n\n#### 功能描述\n\n`BaseObjectStorageUploadManager` 是一个抽象类，它实现了 `IObjectStorageUploadManager` 接口的部分功能，并提供了一个抽象方法供子类实现具体的上传逻辑。\n\n#### 属性说明\n\n- `BucketSavePath`\n    - 存储上传文件的目标路径。\n- `UploadRootPath`\n    - 存储待上传的本地目录路径。\n\n#### 方法说明\n\n- `Init(string accessKey, string secretKey, string bucketName)`\n    - 抽象方法，由子类实现具体的初始化逻辑。\n- `SetSavePath(string savePath)`\n    - 设置目标存储路径，确保路径末尾没有多余的目录分隔符。\n- `UploadDirectory(string localDirectory)`\n    - 设置待上传的本地目录，并调用内部方法执行上传。\n- `UploadDirectoryInternal(string localDirectory)`\n    - 抽象方法，由子类实现具体的上传逻辑。\n\n### ObjectStorageUploadFactory\n\n#### 功能描述\n\n`ObjectStorageUploadFactory` 是一个静态工厂类，用于创建和初始化上传管理器实例。\n\n#### 方法说明\n\n- `Create\u003cT\u003e(string accessKey, string secretKey, string bucketName)`\n    - 创建指定类型的上传管理器实例，并自动调用初始化方法。\n\n## 使用指南\n\n### 引入命名空间\n\n在使用上述接口和类之前，请确保已引入正确的命名空间：\n\n```csharp\nusing GameFrameX.ObjectStorage.Runtime;\n```\n\n### 初始化和使用上传管理器\n\n1. 使用工厂类创建并初始化上传管理器实例：\n   ```csharp\n   IObjectStorageUploadManager uploadManager = ObjectStorageUploadFactory.Create\u003cYourCustomUploadManager\u003e(\"your_access_key\", \"your_secret_key\", \"your_bucket_name\");\n   ```\n2. 设置上传文件的目标存储路径：\n   ```csharp\n   uploadManager.SetSavePath(\"desired/upload/path\");\n   ```\n3. 上传本地目录：\n   ```csharp\n   uploadManager.UploadDirectory(\"local/directory/to/upload\");\n   ```\n\n请根据实际的业务需求和对象存储服务的特性，实现 `BaseObjectStorageUploadManager` 的抽象方法，以提供具体的上传逻辑。\n\n## 注意事项\n\n# 使用方式(任选其一)\n\n1. 直接在 `manifest.json` 的文件中的 `dependencies` 节点下添加以下内容\n   ```json\n      {\"com.gameframex.unity.objectstorage\": \"https://github.com/AlianBlank/com.gameframex.unity.objectstorage.git\"}\n    ```\n2. 在Unity 的`Packages Manager` 中使用`Git URL` 的方式添加库,地址为：https://github.com/AlianBlank/com.gameframex.unity.objectstorage.git\n\n3. 直接下载仓库放置到Unity 项目的`Packages` 目录下。会自动加载识别","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.objectstorage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.objectstorage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgameframex%2Fcom.gameframex.unity.objectstorage/lists"}