13

我这里所描述试图备份数据存储GAE对GS桶。我试图在表单中提供水桶名称:不能备份GAE应用程序的数据存储到GS桶

bucket 
/gs/bucket 
/gs/bucket/path 

但它不起作用。 每次我得到一个消息:

There was a problem kicking some off the jobs/tasks: 
Invalid bucket name: 'bucket' 

我在做什么错?是否有可能将所有数据(包括blob文件)备份到GS而无需为此编写自定义代码?

回答

7

我怀疑水桶不存在或者App Engine不具有写权限桶。

确保满足下列条件:

  1. 您已经创建BUCKET。如果需要,使用类似于gsutil的内容来创建存储桶。
    • gsutil mb gs://BUCKET
  2. 确保您的应用引擎服务帐户有写访问权限BUCKET
  3. 现在使用的形式/gs/BUCKET

开始备份如果你得到一个Bucket "/gs/BUCKET" is not accessible消息,那么你的水桶不存在,或[email protected]没有进入你的水桶。

注:形式是/gs/BUCKET。以下是错误的:GS://桶GS /桶

检查桶用下面的命令正确的权限存在:

gsutil getacl gs://BUCKET # Note the URI form here instead of a path. 

查找像下面的条目:

<Entry> 
    <Scope type="UserByEmail"> 
    <EmailAddress>[email protected]</EmailAddress> 
    </Scope> 
    <Permission>WRITE</Permission> 
</Entry> 

如果您没有看到一个你可以通过以下方式添加一个:

gsutil getacl gs://BUCKET > acl.xml 
vim acl.xml # Or your favorite editor 
# Add the xml above 
gsutil setacl acl.xml gs://BUCKET 

现在上面的步骤将工作。

+0

做了这一切。实际上我的应用正在向该存储桶写入数据。所以它的所有权与访问权 – tuxSlayer

+0

这是令人惊讶的。上述步骤对我有用。我尝试了一个新的和先前存在的桶。如上所示,更新ACL后,存储桶才能正常工作。我会建议尝试一个新的,一次性桶名称。例如,我使用/ gs/delete-this-bucket。 – fejta

+0

只是做了你所提出的一切。可以看到来自gsutil getacl命令的写入许可;一切都已到位;效果相同 – tuxSlayer

0

我只花了一段时间这个摔跤自己。谢谢@fejta的帮助。

我无法弄清楚这一点。我已经将我的用户到该项目,验证了我能写,手动更新ACL(这不应该被要求),...

最后,通过在命令行中创建一个斗:

gsutil mb gs://BUCKET 

而不是Web用户界面为我工作。

/gs/BUCKET 

希望这有助于 雅各

21

我得到了它:多桶之前或将用户添加到组中所有导致“无效的分区名称”

我解决它之后创建通过将服务帐户电子邮件添加为具有写入权限的特权用户来工作。

这里就是我所做的:

  1. 创建通过web界面桶(存储>云存储>浏览器>新桶)
  2. 添加[email protected]与编辑权限的特权用户(权限>添加成员)

即使认为它是同一个项目的一部分,出于某种原因,我仍然需要添加项目电子邮件作为特权用户。

+0

这也适用于我在新的Google云端控制台中。谢谢! – Sasha

+0

没有“s〜”的应用程序ID。如果您的应用ID是“s〜myapp”,请使用“[email protected]” –

+0

这个**仍然**在Google文档中未提及,至少不是我发现的。 –

相关问题