Пример #1
0
def main(argv):
    _BUCKET_NAME = argv["bucket"].encode()
    _COMPOSITE_FILE_NAME = argv["object"].encode()
    _FILE1_NAME = _COMPOSITE_FILE_NAME + "errTEmp.txt"
    #_FILE2_NAME = "tmp.txt"
    errdata = argv["errdata"].encode()#"TEINE URR\n"#

    http = httplib2.Http()
    token_uri = '%s/%s/token' % (METADATA_SERVER, SERVICE_ACCOUNT)
    resp, content = http.request(token_uri, method='GET',
                                 body=None,
                                 headers={'Metadata-Flavor': 'Google'})
    if resp.status == 200:
        d = json.loads(content)
        access_token = d['access_token']  # Save the access token
        credentials = oauth2_client.AccessTokenCredentials(access_token, 'my-user-agent/1.0')
        client = api_discovery.build('storage', _API_VERSION, http=credentials.authorize(http))
        #check if file exists
        fileExists = True
        try:
            # Get Metadata
            req = client.objects().get(
                    bucket=_BUCKET_NAME,
                    object=_COMPOSITE_FILE_NAME) # optional
            try:
                resp = req.execute()
            except:
                fileExists = False
                
            if (fileExists is False):
                insertObj.insertNewObject(client, _BUCKET_NAME, _COMPOSITE_FILE_NAME, errdata)
            else:
                insertObj.insertNewObject(client, _BUCKET_NAME, _FILE1_NAME, errdata)
                try:
                    composite_object_resource = {
                            'contentType': 'text/plain',  # required
                            'contentLanguage': 'et',
                            'metadata': {'my-key': 'my-value'},
                    }
                    compose_req_body = {
                            'sourceObjects': [
                                    {'name': _FILE1_NAME},
                                    {'name': _COMPOSITE_FILE_NAME}],
                            'destination': composite_object_resource
                    }
                    req = client.objects().compose(
                            destinationBucket=_BUCKET_NAME,
                            destinationObject=_COMPOSITE_FILE_NAME,
                            body=compose_req_body)
                    resp = req.execute()
                    print (json.dumps(resp, indent=2))
                    deleteObj.delObj(client, _BUCKET_NAME, _FILE1_NAME)
                except oauth2_client.AccessTokenRefreshError:
                    print ("The credentials have been revoked or expired, please re-run the application to re-authorize")
                    pass
            
        except oauth2_client.AccessTokenRefreshError:
            #TODO! save error somewhere
            print ("False credentials")
            pass
    else:
        print (resp.status)
Пример #2
0
def main(argv):
    _BUCKET_NAME = argv["bucket"].encode()
    _COMPOSITE_FILE_NAME = argv["object"].encode()
    _FILE1_NAME = _COMPOSITE_FILE_NAME + "errTEmp.txt"
    #_FILE2_NAME = "tmp.txt"
    errdata = argv["errdata"].encode()  #"TEINE URR\n"#

    http = httplib2.Http()
    token_uri = '%s/%s/token' % (METADATA_SERVER, SERVICE_ACCOUNT)
    resp, content = http.request(token_uri,
                                 method='GET',
                                 body=None,
                                 headers={'Metadata-Flavor': 'Google'})
    if resp.status == 200:
        d = json.loads(content)
        access_token = d['access_token']  # Save the access token
        credentials = oauth2_client.AccessTokenCredentials(
            access_token, 'my-user-agent/1.0')
        client = api_discovery.build('storage',
                                     _API_VERSION,
                                     http=credentials.authorize(http))
        #check if file exists
        fileExists = True
        try:
            # Get Metadata
            req = client.objects().get(bucket=_BUCKET_NAME,
                                       object=_COMPOSITE_FILE_NAME)  # optional
            try:
                resp = req.execute()
            except:
                fileExists = False

            if (fileExists is False):
                insertObj.insertNewObject(client, _BUCKET_NAME,
                                          _COMPOSITE_FILE_NAME, errdata)
            else:
                insertObj.insertNewObject(client, _BUCKET_NAME, _FILE1_NAME,
                                          errdata)
                try:
                    composite_object_resource = {
                        'contentType': 'text/plain',  # required
                        'contentLanguage': 'et',
                        'metadata': {
                            'my-key': 'my-value'
                        },
                    }
                    compose_req_body = {
                        'sourceObjects': [{
                            'name': _FILE1_NAME
                        }, {
                            'name': _COMPOSITE_FILE_NAME
                        }],
                        'destination':
                        composite_object_resource
                    }
                    req = client.objects().compose(
                        destinationBucket=_BUCKET_NAME,
                        destinationObject=_COMPOSITE_FILE_NAME,
                        body=compose_req_body)
                    resp = req.execute()
                    print(json.dumps(resp, indent=2))
                    deleteObj.delObj(client, _BUCKET_NAME, _FILE1_NAME)
                except oauth2_client.AccessTokenRefreshError:
                    print(
                        "The credentials have been revoked or expired, please re-run the application to re-authorize"
                    )
                    pass

        except oauth2_client.AccessTokenRefreshError:
            #TODO! save error somewhere
            print("False credentials")
            pass
    else:
        print(resp.status)
Пример #3
0
def updateExistingObj(existingFileDict, client, _BUCKET_NAME, _FILE1_NAME):
    deleteObj.delObj(client, _BUCKET_NAME, _FILE1_NAME)
    jsondata = json.dumps(existingFileDict, indent=4)
    insertObj.insertNewObject(client, _BUCKET_NAME, _FILE1_NAME, jsondata)
Пример #4
0
def updateExistingObj(existingFileDict, client, _BUCKET_NAME, _FILE1_NAME):
    deleteObj.delObj(client, _BUCKET_NAME, _FILE1_NAME)
    jsondata = json.dumps(existingFileDict, indent=4)
    insertObj.insertNewObject(client, _BUCKET_NAME, _FILE1_NAME, jsondata)