Git Product home page Git Product logo

google / google-drive-shell-extension Goto Github PK

View Code? Open in Web Editor NEW
148.0 31.0 74.0 239 KB

Google Drive Shell Extension is a Shell Namespace Extension for Microsoft Windows. It creates a virtual folder on My Computer that allows the user to interact with his Google Drive account transparently through Windows Explorer.

Home Page: https://groups.google.com/d/forum/google-drive-shell-extension

License: Apache License 2.0

C++ 96.77% C 1.16% C# 1.26% NSIS 0.49% Batchfile 0.32%

google-drive-shell-extension's Introduction

Important Notice Of Archive

This project is no longer being maintained and therefore being moved to the archive.

About Google Drive Shell Extension

Google Drive Shell Extension is a Shell Namespace Extension for Microsoft Windows. It creates a virtual folder on My Computer, mirrored in the user's home directory, that allows the user to interact with his Google Drive account transparently through Windows Explorer. This includes "File Open" and "Browse" commands from within other Windows applications, etc. It connects to Google Drive using the Google Drive Proxy service.

The main feature of the project is that syncronization is performed only as needed. Instead of holding the entire contents of your Google Drive folder on disk, it only keeps what it needs. When you open or copy files it will download them. It will then upload any changes you make locally to keep the folders in sync. This means that your content is not available while offline.

Known Product Limitations

The Google Drive Shell Extension implementation has a few limitations that both users and administrators should be aware of.

User actions to open a Drive document need to occur through the shell extension interface. If a user accesses documents outside of this method the user will not get the most updated content from Drive and saved changes will not get uploaded back to Drive.

  • For example a user opens MyFile.docx from the shell extension interface in My Computer the tool downloads the file to a temporary location on disk while the user is editing the document, the extension will monitor this file location for save events and upload changes back to Drive.

    However, lets assume the user logs off of the computer and comes back later to open the same MyFile.docx. If the user opens Word and uses the recents menu to open MyFile.docx the file is opened from the temporary file cache location. This action will not invoke the shell extension or its features and the temporary file will be opened in the editor. The shell extension will not be aware of any actions related to the temporary file. If there is a newer revision of the file in Drive it will not be downloaded. The changes saved to the temporary file will not be uploaded to Drive. These same limitations apply to other recents file menus for example in the Start Menu or other file open methods that circumvent the shell extension as the means for accessing the Drive content.

  • The Google Drive Shell Extension is not accessible to applications virtualized using Microsoft's App-V technology. If using a virtualized application or using the shell extension on a terminal server, the shell extension is only available to natively installed applications. Applications virtualization using Microsoft's App-V are unable to see shell extension. Microsoft recently added new support for specific shell extension features in App-V 5 SP2 however this does not include support for the features needed to support the Google Drive shell extension.

Supported OS

  • Windows 7 32-bit and 64-bit
  • Windows 8
  • Windows Server
  • Citrix Server

Contents

The bundled Visual Studio Solution file will work with Visual Studio 2010 and later, and includes:

  • the DriveFusion dll project This project builds the Shell Namespace Extension.
  • the DriveFusion.Installer WiX project This project builds the Installer for the Shell Namespace Extension. This only includes Google Drive Shell Extension, it will not install the Drive Proxy service.

Build instructions

Project dependencies:

  1. Once everything is installed, clone the project locally.

    git clone https://github.com/google/google-drive-shell-extension.git

  2. Enter the repository's directory.

    cd google-drive-shell-extension

  3. Update the project's submodules.

    git submodule update --init --recursive

  4. Follow google-drive-proxy's build instructions.

  5. Edit Release.bat and make sure the paths to MSBuild.exe and makensis.exe are correct for your machine.

  6. Execute Release.bat.

Installation instructions

After building, go to the ./bin folder and execute DriveFusion.exe. This will launch the installer, which will automatically install both Google Drive Shell Extension and the Google Drive Proxy service to the appropriate Program Files folder. The only required interaction is a UAC prompt to grant admin privilege.

The Google Drive Proxy service is always installed to the 32-bit Program Files folder, under "Google/Drive Proxy". Google Drive Shell Extension will match your Windows' architecture Program Files folder, under "Google/Drive Fusion".

Usage

After installing the project, you'll find a new virtual folder in My Computer. The first time you attempt to open it, it will launch a browser window and request your Google Account username and password. It will then request that you authorize the application to access Google Drive. Once it has authenticated your credentials, you will be able to view the contents of your Google Drive account and treat it as any other folder. You can create folders, create new files, drag and drop into and out of it, etc.

Contact

For questions and answers join/view the [google-drive-shell-extension] (https://groups.google.com/d/forum/google-drive-shell-extension) Google Group.

google-drive-shell-extension's People

Contributors

dekuhn avatar fcoulombegoogle avatar jpgaribotti avatar martineo14 avatar rodocite avatar smedrano avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

google-drive-shell-extension's Issues

DriveFusion doesn't build with v140 PlatformToolset

According to the compiler errors, this is because Service.h is missing std::unique_pointer.

Adding #include <memory> to that file seems to fix that.

There's also a bunch of new compiler warnings from /W4 with the newer compiler, but I was able to workaround them by switching the build flags from /WX to /WX-.

Right click menu doesn't work

When right clicking in a folder in the extension and selecting "New -> Folder" or "New -> File", nothing happens. This should allow the users to create new files or folders in the extension.

Save As dialog creates empty files, asks to overwrite

Repro steps:

  • Create new file from within an application.
  • Select Save as from windows menu and then select Drive.
  • When saving, an empty file is created of the same name as the "Save As" filename. In Citrix environments, this is repeated for each and every folder you navigate to.
  • You are then warned that a file already exists and are asked to overwrite the destination.

Mutiple Session does not work on Windows Server 2008

DriveFusion start service server with UserName,but connect PIPE with UserSessionId.

example:someone use the RDP connect to a Windows Server 2008 on the two session.

session 1,DriveProxy.Service.exe,PIPE is "[email protected]".
session 2,can not start DriveProxy.Service.exe,PIPE is "[email protected]".

bool Service::_IsServerRunning() const
{
  DWORD processId = UserIdentity::GetUserProcessId(L"DriveProxy.Service.exe");

  if (processId > 0)
  {
    return true;
  }

  return false;
}

so that,DriveFusion skip the creation of DriveProxy.Service.exe on the second session.

Add the bitness in the text for add/remove software

currently on 64bits, it will install both 32 and 64 bits which will create 2 entries in the add/remove software. We need to add the bitness to not let the user think that he has the program installed twice by error.

Install 32 and 64 bit support on 64 bit systems

When installing the extension on 64 bit systems, only the 64 bit extension is currently installed. This means that 32 bit programs on the machine can't access the extension. The installer should install support for both architectures when a 64 bit system is detected so that every program can make use of the extension.

Deleting files crashes explorer

When browsing a directory with explorer, deleting a file will cause explorer to crash. The file succeeds in being deleted from Drive.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.