[JAVA] GitHub als Speicher

Einführung

Haben Sie sich jemals gefragt, ob es einen guten Speicherservice gibt? Aber ist es nicht? Genau da.

:thinking:

Normal setzen

GitHub hat ein Limit von 100 MB pro Datei, sodass Sie dies möglicherweise nicht so tun können, wie es ist. Es überrascht nicht, dass ich versucht habe, eine große Datei zu speichern.

Dann solltest du es teilen!

Ich möchte den Dateinamen nicht herausfinden und verwalte den Dateinamen auch als Textdatei.

Was passierte dann

Dann sollten Sie es nach dem Teilen verschlüsseln! Generieren Sie außerdem automatisch eine Korrespondenztabelle zum Umbenennen von Dateien!

Deshalb habe ich [dies] gemacht (https://github.com/nao20010128nao/Cryptorage)

Ich habe keine Dokumentation geschrieben, aber ich denke, es ist nicht schwierig, sie zu verwenden. Lassen Sie es uns in JitPack setzen.

Vorbereitung

Lassen Sie uns ein Git-Repository erstellen

cd locked/
git init
git remote add origin https://github.com/nao20010128nao/somewhere-secret.git

Laden Sie das Basisdateisystem

Ich schreibe alles in Kotlin. Bitte importieren Sie nach com.nao20010128nao.Cryptorage. *

//Geöffnet von lokal
val fs = File("secure/").asFileSource()

//Öffnen Sie aus dem GitHub-Repository
val fs = URL("https://github.com/nao20010128nao/somewhere-secret/raw/inexistent/").asFileSource()

//Speicher erweitern
val fs = newMemoryFileSource()

Jetzt können Sie ein Cryptorage-spezifisches Dateisystem namens "FileSource" erhalten.

Öffnen Sie den verschlüsselten Speicher

AES-128 wird zur Verschlüsselung verwendet. Der Verschlüsselungsschlüssel wird entscheidend vom Passwort abgeleitet.

//Einfacher Kryptospeicher(V1)
val cryptorageV1 = fs.withV1Encryption("Passwort")

//Speicher, der es schwierig machte, selbst den Ort der Korrespondenztabelle zu identifizieren(V2)
val cryptorageV2 = fs.withV2Encryption("Passwort")

Der Einfachheit halber wird nur das Beispiel des Kennworts gezeigt, aber nur für V1 kann "Pair <ByteArray, ByteArray>" als AES-Schlüssel angegeben werden.

Schreiben

Die API von Cryptorage verwendet Guavas ByteSink / ByteSource.

//Verwenden Sie die ByteSink-API
cryptorage.put("filename").write("This is a secret string!!!".toByteArray())

//Mit Ausgabestream verarbeiten
val os = cryptorage.put("filename").openStream()
//Schreiboperation
os.close()

Lesen

//Von Anfang an
val is = cryptorage.open("filename").openStream()
//Aus der Mitte(Da es geteilt ist, sind die Kosten schon ab der Mitte niedrig)
val is = cryptorage.open("filename", offset).openStream()

//Da es sich um InputStream handelt, scheint es einfach zu sein, wie Sie möchten

Überprüfen Sie die Dateiliste

cryptorage.list()// Array<String>

Löschen

cryptorage.delete("filename")

Änderungen speichern

cryptorage.commit()

Aufräumen

Da Cryptorage "Closeable" ist, können Sie Closer-Dienstprogramme verwenden.

cryptorage.close()

hochladen

git add .
git commit -mChanged
git push

etc

Sie können die Datei wie folgt aufteilen, verschlüsseln und auf GitHub speichern. Übrigens scheint die Größe von GitHub pro Zweig begrenzt zu sein. Achten Sie also darauf, diese nicht zu überschreiten, indem Sie den Zweig entsprechend abschneiden.

Recommended Posts

GitHub als Speicher
Senden Sie eine Pull-Anfrage an GitHub
Warum Frühling als leichtes Gerüst betrachten
Verwenden Sie FacesContext als Mock mit PowerMockito