Google cloud storage GCS-单个boto文件中的多个凭据

Google cloud storage GCS-单个boto文件中的多个凭据,google-cloud-storage,boto,Google Cloud Storage,Boto,GCS新手(今天刚开始使用)。看起来很有希望 是否在一个boto文件中使用多个S3帐户(或GCS)?我只看到在一个文件中为一个S3和一个GCS帐户分配密钥的选项。我想使用多个凭据 我们喜欢从S3复制到S3,或从GCS复制到GCS,每个桶使用不同的键。您应该能够在.boto文件中设置多个配置文件 您可以添加如下内容: [profile prod] gs_access_key_id=.... gs_secret_access_key=.... [profile dev] gs_access_key

GCS新手(今天刚开始使用)。看起来很有希望

是否在一个boto文件中使用多个S3帐户(或GCS)?我只看到在一个文件中为一个S3和一个GCS帐户分配密钥的选项。我想使用多个凭据


我们喜欢从S3复制到S3,或从GCS复制到GCS,每个桶使用不同的键。

您应该能够在.boto文件中设置多个配置文件

您可以添加如下内容:

[profile prod]
gs_access_key_id=....
gs_secret_access_key=....

[profile dev]
gs_access_key_id=....
gs_secret_access_key=....
然后从代码中,您可以向连接调用添加profile_name=参数:

con = boto.gs.connection(profile_name="dev")

您当然可以使用多个boto文件,只需确保每个文件中的凭据都有效即可。每次需要在它们之间切换时,使用正确的路径运行以下命令

$BOTO_CONFIG=/path/to_BOTO gsutil cp SOME_FILE gs://bucket

例如: BOTO_CONFIG=/etc/BOTO.cfg gsutil-m cp text.txt gs://bucket


此外,您可以为不同的配置文件使用别名。只需为每个命令创建一个别名,即可设置

您可以将概要文件名作为参数传递,并使用sys.argvals的内容将其提取。如果您还不熟悉getopt模块,请查看它。我发现它可以用最少的代码让事情变得更加用户友好-谢谢Mike的回复。三个小时前我还不熟悉Python,非常感谢您的支持。对于这样一个简单的脚本,如何传入配置文件名?gsutil rsync-d-r s3://my-s3-bucket gs://my gcs bucket再次感谢您的耐心等待!我不确定gsutil命令是否在多个概要文件之间本机工作。不过,您可以将其封装在bash脚本中,并分几个阶段进行传输。在运行每个gsutil命令之前,可以导出环境变量BOTO_CONFIG以指向不同的.BOTO文件。这是一种稍有不同的方法,稍微不那么优雅,但实现起来要比调整gsutil命令本身快得多?我有许多boto配置文件,每个凭证一个,我通过boto_config环境变量在它们之间切换。如果您定义shell别名(例如testenv、prodenv等),那么切换boto配置文件就非常容易了