Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
1

Не получается сохранить программно файл на Google Drive

15.04.2013, 12:31. Просмотров 1524. Ответов 5
Метки нет (Все метки)

добрый день, уважаемое сообщество.
пытаюсь маленько тренироваться в программировании под андроид и вот столкнулся с такой проблемой:
пытаюсь из своей программы сохранить файл LogFilePath на гугл драйв, по логам вроде все проходит без ошибок, создается сервис, копируется файл(якобы!!), выдает некую ссылку по getDownloadUrl(), но файла на GD НЕТУ!!!!. в чем проблема - не пойму. помогите, плиз. ниже - кусок кода, отвечающего за сие действо:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public static final String SERVICE_ACCOUNT_EMAIL = "M_EMAIL";
public static String keyFilePath = Environment.getDataDirectory()
+ "/data/moe_prilozhenie/files/";
public static String LogFilePath = Environment.getDataDirectory()
+ "/data/moe_prilozhenie/files/myfile.txt";
 
public static final String SERVICE_ACCOUNT_PKCS12_FILE_PATH = "my_privatekey.p12";
 
public static Drive getDriveService() throws GeneralSecurityException,
IOException, URISyntaxException {
HttpTransport httpTransport = new NetHttpTransport();
JacksonFactory jsonFactory = new JacksonFactory();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(jsonFactory)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(DriveScopes.DRIVE)
.setServiceAccountPrivateKeyFromP12File(
new java.io.File(keyFilePath
+ SERVICE_ACCOUNT_PKCS12_FILE_PATH))
.build();
Drive service = new Drive.Builder(httpTransport, jsonFactory, null)
.setApplicationName("ua.moe_prilozhenie")
.setHttpRequestInitializer(credential).build();
 
Log.d("RRRRR",
"get service drive !" + service.getApplicationName()
+ " - " + service.getServicePath());
return service;
}
 
public static File UploadFileToGDisk(Drive service, String title,
String description, String parentId, String mimeType,
String filename) {
File body = new File();
body.setTitle(title);
body.setDescription(description);
body.setMimeType(mimeType);
 
body.setParents(null);
 
java.io.File fileContent = new java.io.File(filename);
FileContent mediaContent = new FileContent(mimeType, fileContent);
try {
File file = service.files().insert(body, mediaContent).execute();
 
Log.d("UploadFileToGDisk", "File ID: " + file.getId()+file.getDownloadUrl());
 
return file;
} catch (IOException e) {
Log.d("RRRRR","An error occured: " + e);
return null;
}
}
вызывается функция как:
Java
1
2
File fff = UploadFileToGDisk(getDriveService(), "My title","My description", "qwerty", "txt/csv",Gooogledisk.LogFilePath);
Log.d("RRRRR", "file uploaded!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"+fff.getModifiedDate().toString());
буду благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2013, 12:31
Ответы с готовыми решениями:

Не получается сохранить файл на SD карту
String FILENAME = "settings"; String string = "hello world!"; File sdDir =...

Google Drive
Пытаюсь запустить пример https://github.com/googledrive/android-demos/ ...

Работа с Google Drive Api
Есть ли годные статьи или видео по работе с Google Диском? Задача написать...

Download file from Google Drive
Проблема состоит в следующем: необходимо используя Google Drive API загрузить...

Upload Google Drive API Retrofit 2
Вот интерфейс для Retrofit2: public interface OAuthServerIntf { .......

5
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 13:13 2
https://developers.google.com/drive/quickstart-android
0
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 15:21  [ТС] 3
пробовал, читал... но, видимо, не хватает у меня еще навыков. с регистрацией через SHA1 - не понял как генерить собственно сам сертификат, посему решил что лучше и проще использовать service account - и хотел бы этот вариант и добить... самое непонятное именно в том, что вроде как все отрабатывает, не вываливаются exception, но результат - отсутствие файла на драйве (
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 16:06 4
Для Windows консоли:
Java
1
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -list -v
или Win7 & 8
Java
1
keytool -exportcert -alias androiddebugkey -keystore С:\Users\user\.android\debug.keystore -list -v
WinXP
Java
1
keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\user\.android\debug.keystore" -list -v
если что пароль при вводе не отображается.
0
wolfff33
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 3
15.04.2013, 16:26  [ТС] 5
Цитата Сообщение от c4sp3r Посмотреть сообщение
Для Windows консоли:
Java
1
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -list -v
или Win7 & 8
Java
1
keytool -exportcert -alias androiddebugkey -keystore С:\Users\user\.android\debug.keystore -list -v
WinXP
Java
1
keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\user\.android\debug.keystore" -list -v
если что пароль при вводе не отображается.
то есть, мой вариант через сервис эккаунт довести до ума возможности не представляется в принципе?
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
15.04.2013, 18:05 6
wolfff33, я service account не пробовал использовать поэтому мне нечего сказать и твой пример я вообще не смотрел так как он не оформлен нормально.

Также при чтении я не заметил чтобы говорилось про возможность использования service account
Paste the SHA-1 fingerprint generated in Step 1 into the Signing certificate fingerprint.
Также их пример использует SHA-1 fingerprint
https://developers.google.com/drive/examples/android

и
Authorizing requests on Android differs from other authorization workflows because of the integration with Google Play services. Unlike other workflows, authorization on Android uses a SHA1 fingerprint and package name to identify your app instead of a client ID and client secret.

https://developers.google.com/drive/auth/android
Поэтому я не уверен насчет возможности использовать service account.

p.s. попробуй еще поискать или спросить на stackoverflow.
1
15.04.2013, 18:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2013, 18:05

Google Maps/Drive API for Android
Столкнулся с такой пробелмой, пару месяцев назад написал приложение , которое...

Скачать и загрузить файл на Google Drive
Как скачать и загрузить файл на Google Drive ,программно в c++ под windows?...

Attachmen Сохранить Файл Программно В Поле
Всем доброго дня! :( Подскажите пожалуйста! :blush: Открываю документ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru