【问题标题】:How to move file to different folder in same bucket aws?如何将文件移动到同一存储桶aws中的不同文件夹?
【发布时间】:2021-12-16 23:29:06
【问题描述】:

我有一个小问题,我正在尝试将一个特定文件从一个文件夹移动到同一个存储桶中的另一个文件夹,文件名存储在一个变量中。实际上,在执行这个命令的时候,文件名是没有被正确读取的。这是一个例子:

    times = time.strftime("%Y/%m/%d-%H:%M:%S") 
    name="test1" 
    if "test" in name: 
        cmd='aws s3 mv s3://bucket_name/folder/folder1/"$name" 
         s3://bucket_name/folder/folder2/"$name_$times"'
        proc=subprocess.Popen(cmd, shell=True, stdout = subprocess.PIPE) 
        try:
           outs, errs = proc.communicate(timeout=15) 
        except TimeoutExpired: 
           proc.kill() outs, errs = proc.communicate()**

结果:文件没有移动

但是当我使用时:

    cmd='aws s3 mv s3://bucket_name/folder/folder1/test1 
     s3://bucket_name/folder/folder2/test1_2021'

文件被移动。

想知道有没有办法在命令行中读取变量名,谢谢!

【问题讨论】:

  • #python #commandline

标签: python amazon-web-services file bucket mv


【解决方案1】:

Python 字符串插值不能这样工作。您需要(Python 3.6 及更高版本)

cmd=f'aws s3 mv s3://bucket_name/folder/folder1/{name} s3://bucket_name/folder/folder2/{name}_{times}'

还有时间格式不正确。它将创建类似'2021/11/02-14:36:02' 的东西,它不能是文件名的一部分。

您可以使用input 来读取变量的名称。

我强烈建议使用 boto3 而不是创建一个进程来调用 AWS CLI。

【讨论】:

  • 感谢您的回复!现在它工作正常!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2019-10-30
相关资源
最近更新 更多