Я пытаюсь использовать Dropbox V2 API для загрузки файлов приложений (SQLite и предпочтений) из моего приложения Android в мою учетную запись Dropbox. Я могу успешно запустить клиент:Dropbox V2 uploadBuilder: «String« path »не соответствует шаблону«
// Dropbox authentication
config = new DbxRequestConfig("dropbox/liikennevalot");
client = new DbxClientV2(config, ACCESS_TOKEN);
Мое приложение говорит ссылка вверх, перечисляя свои учетные данные пользователя:
FullAccount account = client.users().getCurrentAccount();
Я могу перечислить файлы в моем приложении директории Dropbox:
ListFolderResult result = client.files().listFolder("");
while (true) {
for (Metadata metadata : result.getEntries()) {
Log.d("DROPBOX", metadata.getPathLower());
}
if (!result.getHasMore()) {
break;
}
result = client.files().listFolderContinue(result.getCursor());
}
Но при попытке загрузить с Android в корневой каталог приложения Dropbox с помощью
try (InputStream in = new FileInputStream(getExternalFilesDir(null) + "/" + "testi.txt")) {
FileMetadata metadata = client.files().uploadBuilder("")
.withMode(WriteMode.OVERWRITE)
.uploadAndFinish(in);
}
я получаю исключение
java.lang.IllegalArgumentException: String 'path' does not match pattern
, который указывает на строку кода с client.files(). UploadBuilder ("") ...
Изучение стека исключений, я считаю, что в Dropbox API V2, класс CommitInfo имеет конструктор, который дает мне это исключение
} else if(!Pattern.matches("(/(.|[\\r\\n])*)|(ns:[0-9]+(/.*)?)", path)) {
throw new IllegalArgumentException("String \'path\' does not match pattern");
Я не знаю, достаточно Java REGEX, чтобы сделать какой-то смысл от этого Regex, так что я действительно не знаю, что вызывает у меня это исключение , Документация Dropbox API V2 гласит, что «» представляет корневую папку приложения в Dropbox, поэтому мой client.files(). UploadBuilder («») ... должен быть совершенным корректным кодом.
Я также попытался создать подкаталог «test» в папке Dropbox моего приложения и изменить код на client.files(). UploadBuilder («test») ... но я получаю одно и то же исключение каждый раз.
Может ли кто-нибудь помочь мне интерпретировать этот REGEX, чтобы дать мне представление о том, что не так с моим кодом?
Какая строка передается в том, что не соответствует шаблону? –
Хороший вопрос, для которого у меня нет ответа. Я знаю только то, что я пытался передать методу uploadBuilder(): «» и «test» вызывают исключение. Я предполагаю, что строка может быть файлом Windows, так как папка Dropbox - это не что иное, как обычная папка. – user3062660