Browse Source

Data storage location moved to settings ("dataPath")

qdn
CalDescent 3 years ago
parent
commit
9407e7e418
  1. 12
      src/main/java/org/qortal/settings/Settings.java
  2. 9
      src/main/java/org/qortal/storage/DataFile.java

12
src/main/java/org/qortal/settings/Settings.java

@ -179,6 +179,14 @@ public class Settings {
/** Additional offset added to values returned by NTP.getTime() */ /** Additional offset added to values returned by NTP.getTime() */
private Long testNtpOffset = null; private Long testNtpOffset = null;
// Data storage
/** Data storage path. */
private String dataPath = "data";
// Constructors // Constructors
private Settings() { private Settings() {
@ -525,4 +533,8 @@ public class Settings {
public List<String> getFixedNetwork() { public List<String> getFixedNetwork() {
return fixedNetwork; return fixedNetwork;
} }
public String getDataPath() {
return this.dataPath;
}
} }

9
src/main/java/org/qortal/storage/DataFile.java

@ -3,6 +3,7 @@ package org.qortal.storage;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.qortal.crypto.Crypto; import org.qortal.crypto.Crypto;
import org.qortal.settings.Settings;
import org.qortal.utils.Base58; import org.qortal.utils.Base58;
import java.io.*; import java.io.*;
@ -73,7 +74,8 @@ public class DataFile {
private boolean createDataDirectory() { private boolean createDataDirectory() {
// Create the data directory if it doesn't exist // Create the data directory if it doesn't exist
Path dataDirectory = Paths.get("data"); // TODO: allow custom directory in settings String dataPath = Settings.getInstance().getDataPath();
Path dataDirectory = Paths.get(dataPath);
try { try {
Files.createDirectories(dataDirectory); Files.createDirectories(dataDirectory);
} catch (IOException e) { } catch (IOException e) {
@ -97,7 +99,7 @@ public class DataFile {
protected String getOutputFilePath(String base58Digest) { protected String getOutputFilePath(String base58Digest) {
String base58Digest2Chars = base58Digest.substring(0, Math.min(base58Digest.length(), 2)); String base58Digest2Chars = base58Digest.substring(0, Math.min(base58Digest.length(), 2));
String outputDirectory = String.format("data/%s", base58Digest2Chars); // TODO: allow custom directory in settings String outputDirectory = String.format("%s/%s", Settings.getInstance().getDataPath(), base58Digest2Chars);
Path outputDirectoryPath = Paths.get(outputDirectory); Path outputDirectoryPath = Paths.get(outputDirectory);
try { try {
@ -212,7 +214,8 @@ public class DataFile {
private boolean isInBaseDirectory(String filePath) { private boolean isInBaseDirectory(String filePath) {
Path path = Paths.get(filePath).toAbsolutePath(); Path path = Paths.get(filePath).toAbsolutePath();
String basePath = Paths.get("data").toAbsolutePath().toString(); // TODO: allow custom directory in settings String dataPath = Settings.getInstance().getDataPath();
String basePath = Paths.get(dataPath).toAbsolutePath().toString();
if (path.startsWith(basePath)) { if (path.startsWith(basePath)) {
return true; return true;
} }

Loading…
Cancel
Save