github-api - 提取 .zip 文件/文件夹结构然后使用 Github API 提交到 Github 的最佳方法是什么?
问题描述
我正在尝试使用 Github 将一些配置文件置于版本控制之下。获取这些特定配置文件的唯一方法是通过对托管服务器的 GET 请求。服务器以 .zip 文件响应。
.zip 文件结构类似于:
|-Folder1
--|-File1.json
--|-File2.json
--|-Pic1.jpg
|-Folder2
--|-File3.json
--|Folder3
----|Pic2.jpg
|-File4.json
|-File5.json
如您所见,它混合了文本和二进制文件。还具有嵌套的文件夹结构。
我需要:
- 使用 Github REST API 将此 .zip 文件提交到 Github(没有问题)
- 但在提交之前,我如何以编程方式提取文件夹和文件(保留文件夹结构)
- 将结果提交到 Github
我已经检查了这里提到的问题/解决方案,但它们不太匹配/已经有几年了。
有人有这样做的工作流程吗?我不得不想象有人遇到过类似的要求。
解决方案
我最终使用 Power Automate 来处理这个问题。
基本上,
- 获取
.zip
文件 - 将其添加到 OneDrive for Business
- 在那里提取它(文件夹结构是“扁平的”,但幸运的是 OneDrive 通过重命名每个文件来“保留”它)
- 示例:
Folder1/File1.json
在.zip
变得Folder1_File1.json
一旦提取 - 通过 api 提交到 Github 时,我只是
replace
为文件名做了一个;包括/
作为路径的一部分。 - 示例网址:
https://api.github.com/repos/SeaDude/replace(items('FOR_EACH_app')?['properties']?['DisplayName'], ' ', '-')/contents/replace(items('FOR_EACH_source_file_2')?['Name'],'_','/')
- 显然,您可以指定一个空(或非空)路径作为 API 提交的一部分。如果目录为空,Github 将创建它!
推荐阅读
- android - 使用 FragmentScenario 时的样式问题
- python - Python - 使用算术函数遍历 2 个列表
- swift - 使用 Swift 在 macOS 上将音频输出转发到音频输入的最简单方法是什么?
- c++ - 标准::向量
使用 std::ifstream 读取二进制文件后仍然为空 - python - 如何在 Discord Bot 上使用 Python 发送 .txt 文件?
- javascript - 在我自己的机器人中实现 MEE6 机器人自定义图形
- javascript - 如何在反应中获取json数据?
- wpf - DLL 中带有 UserControls 的 XAML 设计器无法解析资源
- python - .start() 不会导致启动线程
- python - python list_iterator 类未定义