Добавление пользовательских свойств при загрузке файла на диск
Я пытаюсь использовать клиентскую библиотеку Java API Google для загрузки файла на диск через приложение Android. Я хочу добавить пару пользовательских свойств в файл при загрузке:
File body = new File();
body.setTitle( localFile.getName() );
body.setDescription( "This is a test file made by Android Gro." );
body.setParents( Collections.singletonList( new ParentReference().setId( parentId ) ) );
ArrayList<Property> props = new ArrayList<>();
props.add( new Property().set( "GroFileType", "List" ).setVisibility( "PUBLIC" ) );
props.add( new Property().set( "GrotocolVersion", "0.1" ).setVisibility( "PUBLIC" ) );
body.setProperties( props );
client.files().insert( body, new FileContent( "text/plain", localFile )).execute();
Если я не добавлю свойства (закомментируем строку setProperties()), все будет хорошо. Однако, если я это сделаю, я получу следующее исключение:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code": 400,
"errors": [
{
"domain": "global",
"message": "The allowable values are letters, numbers, and the characters .!@$%^&*()-_/",
"reason": "invalid"
}
],
"message": "The allowable values are letters, numbers, and the characters .!@$%^&*()-_/"
}
Есть идеи, что это значит? Поиск этого точного сообщения об исключении не дает результатов. Мне трудно поверить, что проблема действительно в недопустимых символах в моих свойствах, поскольку я использую только буквы, цифры и точку.
1 ответ
Я столкнулся с той же проблемой. Что не работает, так это вызов Property.set(String,Object). Однако если вы используете два отдельных вызова Property.setKey(String) и Property.setValue(String), эта ошибка не генерируется.