Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 以编程方式模拟;gsutil mv";python中的appengine云存储_Google App Engine_Python 2.7_Google Cloud Storage - Fatal编程技术网

Google app engine 以编程方式模拟;gsutil mv";python中的appengine云存储

Google app engine 以编程方式模拟;gsutil mv";python中的appengine云存储,google-app-engine,python-2.7,google-cloud-storage,Google App Engine,Python 2.7,Google Cloud Storage,我想在谷歌云存储上实现一个mv(copyinthecloud)操作,该操作类似于gsutil的操作() 我之前在某个地方读到,这涉及到数据的读写(下载和重新加载),但我再也找不到这些段落了 这是在云存储中移动文件的正确方法,还是必须深入到boto库以避免通过网络复制数据以重命名文件 istream = cloudstorage.open(src, mode='r') ostream = cloudstorage.open(dst, content_type=src_content, mode='

我想在谷歌云存储上实现一个mv(copyinthecloud)操作,该操作类似于gsutil的操作()

我之前在某个地方读到,这涉及到数据的读写(下载和重新加载),但我再也找不到这些段落了

这是在云存储中移动文件的正确方法,还是必须深入到boto库以避免通过网络复制数据以重命名文件

istream = cloudstorage.open(src, mode='r')
ostream = cloudstorage.open(dst, content_type=src_content, mode='w')

while True:
    buf = istream.read(500000)
    if not buf:
        break

    ostream.write(buf)

istream.close()
ostream.close()
更新:我发现RESTAPI支持复制和合成操作以及更多操作。似乎我们不必为了重命名某个东西而复制跨大陆的数据,这是有希望的

有用的链接,我已经找到了sofar

  • 基于Boto的方法:
  • GCS临床实验室:
  • GCS库:
  • 原始JSON API:

    • 使用JSON API,有一个。下面是Python的官方示例,使用:


      您应该能够使用GCS python客户端库从appengine在云中进行复制。不幸的是,我认为cloudstorage appengine库还不支持这一点,因此您必须使用JSON API建议可以在云中复制的底层接口目录(POST/b/sourceBucket/o/sourceObject/copyTo/b/destinationBucket/o/destinationObject),但我更喜欢更高级别的解决方案,如果有一个.With,您可以使用
      client.objects().copy
      谢谢您的提示,经过大量搜索,我找到了一些文档。。。这个界面看起来很吓人
      # The destination object resource is entirely optional. If empty, we use
      # the source object's metadata.
      if reuse_metadata:
          destination_object_resource = {}
      else:
          destination_object_resource = {
                  'contentLanguage': 'en',
                  'metadata': {'my-key': 'my-value'},
          }
      req = client.objects().copy(
              sourceBucket=bucket_name,
              sourceObject=old_object,
              destinationBucket=bucket_name,
              destinationObject=new_object,
              body=destination_object_resource)
      resp = req.execute()
      print json.dumps(resp, indent=2)