Exemplo n.º 1
0
    def generic_put(self, if_convert, file_name=None):
        if( file_name ):
            self.source_file = file_name
        
        media_body = MediaFileUpload(
                self.source_file, 
                mimetype=self.mime_type, 
                resumable=True)
       
        if self.folder_id == None:
            parents = []
        else:
            parents = [{
                "kind":"drive#fileLink",
                "id":self.folder_id}]

        body = {
                'title':self.title,
                'description':self.description,
                'mimeType':self.mime_type,
                'parents':parents}
 
        # FIXME: should impliment both update and insert for gas and non-gas file
        if self.target_type == "gas":
            request = self.service.files().update(body=body, fileId=self.file_id, media_body=media_body, convert=if_convert)
        else:
            request = self.service.files().insert(body=body, media_body=media_body, convert=if_convert)

        service_response = None
    
        print "Uploading file: %s" % self.source_file
        while service_response is None:
            status, service_response = request.next_chunk(num_retries=10)
            if status:
                sys.stdout.write("\rCompleted: %.2f%%" % (status.progress() * 100))
                sys.stdout.flush()
            else:
                sys.stdout.write("\rCompleted!%s\n" % (" "*10))
                sys.stdout.flush()

                if self.permission != None:
                    GDPerm.insert(self.service, service_response['id'], self.permission)

                return service_response
Exemplo n.º 2
0
            except apiclient.errors.HttpError, error:
                raise Exception('An error occurred: %s' % error)

            # remove from root folder
            try:
                self.service.parents().delete(fileId=table_id, parentId=self.root).execute()
            except apiclient.errors.HttpError, error:
                raise Exception('Atable_idn error occurred: %s' % error)
        
        if self.location_column and self.latlng_column:
            url = self.ft_put_body(table_id, target_file)
        else:
            url = self.ft_put_body(table_id, self.source_file)

        if self.permission != None:
            GDPerm.insert(self.service, service_response['tableId'], self.permission)

        ft_url = "https://www.google.com/fusiontables/data?docid=%s" % table_id

        return ft_url

    
    def ft_put_body(self, table_id, target_file):
        params = urllib.urlencode({'isStrict': "false"})
        URI = "https://www.googleapis.com/upload/fusiontables/v1/tables/%s/import?%s" % (table_id, params)
        METHOD = "POST"

        with open(target_file) as ft_file:
            # get the rows
            #ft_file.next()
            rows = ft_file.read()