Ответы пользователя по тегу Google Drive
  • Правильно ли я понимаю, что после окончания платной подписки, файлы на Google Drive останутся?

    oshliaer
    @oshliaer
    Google Products Expert
    Да, все правильно. При этом вы сможете и дальше получать почту и, вероятно, даже сохранять фотографии, но сервисы будут иметь доступ к файлам только на чтение до тех пор, пока вы не снизите объем до указанного тарифом.
    Ответ написан
    Комментировать
  • Google drive api как скачать файл из публичной папки?

    oshliaer
    @oshliaer
    Google Products Expert
    Если это действительно публичная папка, то вам достаточно авторизовать приложение в вашем аккаунте и исполнить код от вашего имени. Никаких "администраторов папки" не существует.
    Ответ написан
  • Что делать, если случайно удалил файл с расширением xlsx.gsheet?

    oshliaer
    @oshliaer
    Google Products Expert
    Ваша последняя сихронизированная копия еще какое-то время находится на серверах Google - все не удаляется мгновенно. Попробуйте восстановить файлы с этой инструкцией https://gdriveru.blogspot.com/2017/05/restorefiles.html Промахов еще не было, а количество восстановлений давно перестали считать.
    Ответ написан
    Комментировать
  • Реально ли на уровне dns сервера сослаться на файл на чужом хосте?

    oshliaer
    @oshliaer
    Google Products Expert
    Я думаю, что овчинка выделки не стоит.

    Прежде существовала такая функция, как Google Drive Host, которая автоматически хостила любой контент в публичной папке. Соответственно, заголовки они отдавали правильные, и браузер делал правильные вещи.

    Сейчас эта функция отключена, и сервер отдает уже другой Content-Disposition.

    Плюс, без ID соседнего файла вы не сможете подтянуть внешние файлы, даже если вам удастся подменить заголовки.
    Ответ написан
  • Расширения docx.gdoc - как исправить расширение в Google Drive?

    oshliaer
    @oshliaer
    Google Products Expert
    Вам необходимо обратиться к справке по работе с Диском Google.

    Описание функционала находится в разделе Как загружать файлы и папки на Google Диск - Преоб....

    Необходимо в настройках аккаунта отключить опцию автоматического преобразования.

    Со списком поддерживаемых форматов файлов можно ознакомиться по ссылке Какие файлы можно хранить на Google Диске.

    А еще важно понимать, что файлы формата Диска Google не имеют представления, кроме мета ссылки, в локальном хранилище, поэтому получить их копию возможно только экспортом в любой удобный формат.

    Возможно, будет интересно Как работать с файлами Office.
    Ответ написан
  • Как определить e-mail текущего пользователя - от имени которого выполняется работа с Google Disk посредствам Google Drive API?

    oshliaer
    @oshliaer
    Google Products Expert
    Не поймите неправильно, но надеюсь вы делаете не публичное приложение. Видимо, Гугл не зря детерминирует области доступа для авторизации приложений.

    Вам не надо знать имя пользователя, т.к. credential.json не используется в приложениях подобного рода. Спросите у пользователя авторизацию и вперед.

    В противном случае. Вы обязаны хранить информацию о вашем пользователе (конкретно email адрес) у себя в системе и надеяться, что он никаким хитрым задом вовремя не сможе поменять свой email на чужой.
    Ответ написан
    Комментировать
  • Загрузка картинок из google drive. Какой правильный путь?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Оба метода сопоставимы и не имеют никакой разницы в контексте инфраструктуры Гугл. Это все сервисы Диска и дергаете вы АПИ Диска. Которое само по себе не дойная корова. Не стоит расчитывать, что при частом запросе изображений вы не увидите отказа в доступе или отказа в соединении. Исполььзуйте Google Cloud Storage. Потратьте уже наконец $10 в год и получите цивильный, быстрый, надежный удобный доступ к сетевому шарингу.
    Ответ написан
  • Google api: как прикрепить к письму файл из google-drive?

    oshliaer
    @oshliaer
    Google Products Expert
    Достаточно добавить ссылку на файл.

    from __future__ import print_function
    from googleapiclient.discovery import build
    from httplib2 import Http
    from oauth2client import file, client, tools
    from qs import CreateMessage, SendMessage
    
    SCOPES = 'https://www.googleapis.com/auth/gmail.send'
    
    def main():
        """Shows basic usage of the Gmail API.
        Lists the user's Gmail labels.
        """
        store = file.Storage('token.json')
        creds = store.get()
        if not creds or creds.invalid:
            flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
            creds = tools.run_flow(flow, store)
        service = build('gmail', 'v1', http=creds.authorize(Http()))
    
        message = CreateMessage('xxx@gmail.com',
                                'yyy@inbox.ru',
                                'test',
                                'https://docs.google.com/spreadsheets/d/xxx/edit?usp=sharing')
        SendMessage(service, 'me', message=message)
    
    if __name__ == '__main__':
        main()


    Скорей всего есть опция, которая сама расшарит файлы для всех, если надо.
    Ответ написан
  • Как можно быстро передать владение файлами в google drive другому человеку?

    oshliaer
    @oshliaer
    Google Products Expert
    Ознакомьтесь со следующей справочной информацией.
    Как сменить владельца файла или папки
    Как освободить или увеличить хранилище Google Диска

    Из нее следует, что передать права вы сможете только на файлы поддерживаемых форматов, т.н. "файлы формата Диска Гугл".
    Самый простой способ - это поместить все файлы в одну папку, выделить их и сменить владельца, при этом в текущем выделении не должно быть файлов других форматов и фалов не принадлежащих вам.

    Другие файлы (иного формата) будут иметь один и тот же ID только на вашем Диске и нигде больше. Т.е. при передачи прав любым способом произойдет копирование/создание новых файлов с другими ID.
    В данном случае, одним из способов передачи данных является прямое копирование. Вы собираете все файлы в одну директорию, а новый будущий владелец копирует их. Способ не лишен недостатков. Например, все файлы будт иметь имена, наинающиеся со слов "Копия ".

    Очень станно слышать, что организация использовала систему общего доступа без контроля прав. Это серьезное упущение.
    Ответ написан
    Комментировать
  • Превышено максимальное время выполнения Google Script, как решить?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Ваш же вопрос тут Максимальное время выполнения скрипта Google Script

    К тому же не ведете переписку по другим вопросам.
    Ответ написан
    Комментировать
  • Как в автоматическом режиме закачать файлы с google drive?

    oshliaer
    @oshliaer
    Google Products Expert
    В идеальном случае, когда все сделано правильно, пользователь должен был предоставить ссылку на папку, которую вы можете добавить к себе на Диск или загрузить как zip-архив.

    Я предпочитаю в данном случае rclone.org:
    rclone copy drive:SharedFolder /tmp/SharedFolder

    Другой способ - получить прямые ссылки на загрузку оригинального файла. Например, используя Gogole Apps Script #пример

    5a16addc560ef766126864.png

    1. Скопируйте файл
    2. Добавьте свои URL в колонку A
    3. Вызовите пользовательское меню. Будет заполнена колонка D


    Далее можно кликать список или добавить его в менеджер загрузок, или сохранить в файл для wget/curl
    Ответ написан
    Комментировать
  • Можно ли загружать фаилы с сервера на Google drive с их api без OAuth 2.0?

    oshliaer
    @oshliaer
    Google Products Expert
    AlexStolman,
    Authorizing Your App with Google Drive
    All requests to the Google Drive API must be authorized by an authenticated user. Google Drive uses the OAuth 2.0 protocol for authenticating a Google account and authorizing access to user data. You can also use OAuth 2.0 or Google+ Sign-in to provide a "sign-in with Google" authentication method for your app #REF

    Поэтому выход только один PHP Quickstart.
    Простым вариантом может быть поиск приложения или расширения (как это в PHP?) вашего фреймворка (или у вас все от руки?) для работы с Диском.

    С уважением.
    Ответ написан
    Комментировать
  • Можно ли полностью расшарить Google Drive?

    oshliaer
    @oshliaer
    Google Products Expert
    Алексей Савчук,
    • Если речь идет об обычном частном аккаунте, то нет. Как вариант можно написать скрипт, который будет добавлять (не перемещать) в заданную папку все что видит и назначать права.
    • В Google Apps for Work администратор домена имеет такие привилегии.

    С уважением.
    Ответ написан
    Комментировать
  • Какая формула вернет название Листа в ячейку "А1"?

    oshliaer
    @oshliaer
    Google Products Expert
    Здравствуйте.

    Можно создать собственную функцию на основе Google Apps Script.
    Code.gs
    function sheetName() {
      return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
    }
    
    function sheetsName() {
      return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(function(s){return s.getName()});
    }

    В Таблице необходимо указать формулу для получения имени активного листа
    =sheetName(E5:E13)
    Для получения списка всех листов
    =sheetsName(E5:E13)
    где E5:E13 особый, обязательно активный, т.е. зависящий от ввода пользователя, диапазон. Без изменения этого диапазона, толку от функции будет мало.
    Внимание, функции времени (TODAY(), NOW()) нельзя передавать как аргументы.

    Пример Таблицы со скриптом goo.gl/w97FNi

    P.S.: Чтобы исключить гнев и любую неверную интерпретацию, скажу, что этот скрипт стал возможен после публикования вопроса и первых комментариев к этому посту. Пруф https://code.google.com/p/google-apps-script-issue...
    Ответ написан
    Комментировать
  • Как построить диаграмму (график) для не смежных ячеек в Google таблицах?

    oshliaer
    @oshliaer
    Google Products Expert
    Здравствуйте.

    Используйте раздел "Функции" основной "Настройки" - опция "показывать 0"
    20de821d52bd49be80aa41f6a4e164ad.gif

    Пожалуйста, присылайте ссылки на примеры goo.gl/ZLO06Q, иначе, не всегда просто понять, что вы желаете получить. Примечательно, что Таблицы не занимают места на Диске Google.
    Ответ написан
    4 комментария
  • Как получить ссылку на изображение из Google диска по id?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Здравствуйте.

    Берут сомнения меня, что CAJA, даже в режиме IFRAME, предоставляет нам DOM-документ. Все же, с большой вероятностью, это некий фарш LIKE_DOM = CAJA(DOM);

    Поэтому инструкция, чтобы в нее не передавали, не будет "responsive":
    document.getElementByTagName('img').src = data.image;

    Но, это же DOM, в конце концов! Создаем элемент, вместо изменения атрибута:
    index.html
    <div>
    	<input type="button" onclick="showImage()" value="Click Me!" />
    	<div id="app"></div>
    </div>
    <script>
    	function showImage() {
    		google.script.run.withSuccessHandler(doStuff).withFailureHandler(function serverFailureHandler(e) {
    			console.log(JSON.stringify(e))
    		}).getImageId();
    	};
    	function doStuff(id) {
    		var img = document.createElement('img');
    		img.src = 'https://drive.google.com/uc?export=download&id=' + id;
    		document.getElementById('app').appendChild(img);
    	};
    </script>

    Code.gs
    function doGet(e){
      return HtmlService.createHtmlOutputFromFile('index');
    }
    function getImageId(){
      return '0BzStSAirQJ2oREZGYnM5MjBUZTQ';
    }

    Заметьте, нет никакой необходимости вызывать DriveApp. Он вам понадобится, только если изображение будет не в общем доступе. Тогда вам придется брать Blob, кодировать его в base64 и передавать слепок. Размер слепка не может превышать 10Мб.

    И еще я заметил у вас
    <?!= include('JavaScript'); ?>
    Не забудьте, что шаблоны не исполняют асинхронного кода Load data asynchronously, not in templates, поэтому, создавая нечто объемное, постарайтесь выдать HTML как можно быстрее:
    function doGet(e){
      return HtmlService.createHtmlOutputFromFile('index');
    }
    Ответ написан
    Комментировать
  • Как отыскать в Google drive внешнего юзера, что бы отрубить доступ?

    oshliaer
    @oshliaer
    Google Products Expert
    Здравствуйте.

    Только для Google Apps

    Попробуйте приложение #1 Audit Tool for Google Apps. Под невзрачным дизайном скрывается мощный инструмент и добропорядочная поддержка. Статистика доступна бесплатна для всех. По ней как раз вы можете определить, кто кому что предоставил и с какими правами. По подписке на приложение вы можете получить дополнительный функционал. Бесплатная подписка доступна для некоммерческих организаций.
    Еще жалуют Promevo gPanel for Google Apps Administration, но мне не довелось ее использовать.

    В любом случае, при Google Apps и большом количестве пользователей инструмент администрирования:
    ➡ будет куплен
    ➡ будет написан собственными руками

    Для конкретного пользователя. Любой аккаунт.

    Используйте Расширенный поиск с использованием нотации to:email.

    Вы также можете изменить права доступа для файлов (только формат Диска Google), Владельцем которых не являетесь. Для этого сам Владелец должен не запрещать возможность изменения прав. По результатам поиска вы можете это увидеть.
    Ответ написан
    Комментировать