首页 > 解决方案 > Java - 下载和发送文件

问题描述

我想做登录系统。它将从 github 下载 xml 文件,然后将其与新信息一起发送回去。xml 文件看起来像这样:

<user id="1">
        <username>usern&me</username>
        <password>passw0rd</password>
</user>

程序将读取文件并将其存储在数组列表中。然后它将添加新信息并将其写入xml文件。然后我需要它上传/发送到 GitHub。该文件将是相同的,因为 GitHub 会自动覆盖具有相同名称的文件。如何发送并将其上传到我的存储库?最快的方法是什么?

编辑

我将使用 GitHub Java API。

https://github.com/eclipse/egit-github/tree/master/org.eclipse.egit.github.core

这个 API 将帮助我验证我的 Github 帐户并将文件提交到 Github。

我将在下载后立即附加到 XML 文件,并将所有用户名、id 和密码存储到临时数组列表中,登录后将被销毁。这将制作一个“假”数据库。

为此,我真的需要非常快地完成这个过程。一切尽在 1 秒内下载。所以我需要一些快速的算法来快速写入 xml 文件。

如果你有一些好的方法来做到这一点,如何通过编码来更安全地密码(即使存储库显然是私有的)。编码也应该尽可能快。

标签: javaxmlgithubfile-uploadsend

解决方案


解决方案

我从用户 Detelca 那里找到了很棒的要点。它不是很好,但我现在知道它是如何工作的。要点的链接在那里:https ://gist.github.com/Detelca/2337731

简单解释:

我需要连接到 GitHub 身份验证。

GitHubClient client = new GitHubClient();
client.setCredentials("username", "password");

定义存储库

Repository repository =  repositoryService.getRepository("User", "repository");

并提交:

Commit commit = new Commit();
commit.setMessage("commit at " + new Date(System.currentTimeMillis()).toLocaleString());
commit.setTree(newTree);
List<Commit> listOfCommits = new ArrayList<Commit>();
listOfCommits.add(new Commit().setSha(baseCommitSha));           listOfCommits.containsAll(base_commit.getParents());
commit.setParents(listOfCommits);
commit.setSha(base_commit.getSha());
Commit newCommit = dataService.createCommit(repository, commit);

要做的事情比较多,但是代码比较长,可以看大意。

感谢帮助!


推荐阅读