# Slack 批量上传主题和帖子

**URL:** https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054
**Category:** Migration
**Tags:** rest-api
**Created:** [2023年八月5日 11:57 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054 "2023-08-05T11:57:34Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![bitsondatadev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitsondatadev/32/313096_2.png) [@bitsondatadev](https://meta.discourse.org/u/bitsondatadev)
#### Post date: [2023年八月5日 11:57 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/1 "2023-08-05T11:57:34Z")

</div>

大家好，

我正在使用托管的 Discourse/CDCK 来设置我的网站。我目前正在处理来自 Slack 导出的对话，对文本进行一些预处理，使用 hugging face transformer 生成标题，然后通过 API 将其添加到 Discourse。

[https://tabular.discourse.group/t/why-would-t-we-commit-a-snapshot-that-has-made-no-changes/42](https://tabular.discourse.group/t/why-would-t-we-commit-a-snapshot-that-has-made-no-changes/42)

我在另一个论坛（抱歉找不到）上看到，使用 API 进行批量操作不是最佳实践。我还会遇到速率限制和其他问题，我已经尝试修改设置，但最终还是无法克服速率限制。你们有人对如何批量导入我可以用 Slack 消息生成的任何类型的文件有什么建议吗？

经过处理（适合 Discourse）的 Slack 消息存储在数据库中，我有一个脚本可以从中提取数据并将其推送到 Discourse API，我可以轻松地将其更改为生成 Discourse 可以使用的文件，以批量生成主题。

谢谢

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年八月5日 12:42 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/2 "2023-08-05T12:42:49Z")

</div>

通常，您会在自己控制的服务器或开发实例上使用导入脚本。您需要将站点设为只读模式，从托管实例下载备份，进行工作，创建备份，将其上传到托管实例，然后请求恢复您的备份。如果您的站点已上线，并且一天只读时间不是问题，请执行此操作。

如果只读时间非常糟糕，并且您只有几千个帖子，请编写脚本，在调用之间设置延迟，并在被拒绝时重试。

如果您有成千上万个帖子，您需要说服自己和他人，一天只读时间并非非常糟糕。

有关示例，请参阅源代码中的 `scripts/import_scripts`。

---

<div class="post-metadata">

### Author: ![bitsondatadev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitsondatadev/32/313096_2.png) [@bitsondatadev](https://meta.discourse.org/u/bitsondatadev)
#### Post date: [2023年八月5日 16:58 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/3 "2023-08-05T16:58:46Z")

</div>

我一次只提取几百条，所以可能会添加延迟，这样就不必启动本地实例了。我们正逐步将包含特定人员的长对话转移到我们的 Discourse 站点，以填充大量无法再通过 Slack 搜索到的有价值的对话。

CDCK 是否会支持某种方式来调用这些批量导入脚本，或者通过 API 公开批量导入功能？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年八月5日 17:19 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/4 "2023-08-05T17:19:16Z")

</div>

> [@bitsondatadev](#):
>
> CDCK 是否会支持某种方式来调用这些批量导入脚本，或者通过 API 公开批量导入功能？

我对此表示怀疑，因为这是一个相当小众的要求，而且可能非常危险。碰巧，我将开始开发一个插件，该插件将接受一个包含类别、用户、主题、帖子的工作表的 Google 文档电子表格的 URL 并导入它们，但我预计它仅对自托管者和企业客户可用。

---

<div class="post-metadata">

### Author: ![bitsondatadev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitsondatadev/32/313096_2.png) [@bitsondatadev](https://meta.discourse.org/u/bitsondatadev)
#### Post date: [2023年八月5日 17:44 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/5 "2023-08-05T17:44:58Z")

</div>

没问题，我将添加一些异常处理，并在外部 ID 已存在时跳过。此工作流程运行正常，因为我们一次只尝试导入几百条记录，然后手动进行修复。我只是想确保我没有做任何可能导致我陷入糟糕状态的事情。

话虽如此，那个插件似乎是一个很好的替代方案！希望你们能提供一个付费选项，启用一个月，然后恢复到团队计划。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2023年八月5日 17:50 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/6 "2023-08-05T17:50:17Z")

</div>

> [@bitsondatadev](#):
>
> 我只是想确保我没有做任何可能让我陷入糟糕境地的事情。

如果您正在使用 API，那么 Rails 会为您提供许多保护措施，以确保您不会做任何真正糟糕的事情。

---

<div class="post-metadata">

### Author: ![bitsondatadev](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bitsondatadev/32/313096_2.png) [@bitsondatadev](https://meta.discourse.org/u/bitsondatadev)
#### Post date: [2023年八月6日 02:07 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/8 "2023-08-06T02:07:16Z")

</div>

谢谢 Jay！

刚上传了 500 条。花了一段时间，但我所做的只是将帖子和主题的等待时间缩短到 1 秒，并在每次创建调用后添加了一秒的休眠，这就解决了问题。上传大约 500 条消息花了大约 4 个小时。

这绝对是可行的方法。这将为我们提供足够的内容来消化和审核一段时间。

顺便说一句，这目前都在一个私有的 Discourse 中，所以在开放之前我们会让它看起来更漂亮。

再次感谢您的所有帮助！期待那个新插件！

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2023年九月5日 02:07 UTC](https://meta.discourse.org/t/bulk-upload-topics-and-posts-from-slack/274054/9 "2023-09-05T02:07:32Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
