【问题标题】:Copy S3 Objects in the same bucket is not working在同一个存储桶中复制 S3 对象不起作用
【发布时间】:2021-02-12 04:00:56
【问题描述】:

我正在尝试编写一个 Lambda 函数,它读取 Excel 文件,将其转换为 CSV,然后将源 Excel 文件 (.xlsx) 放入名为 ARCHIVE 的文件夹/键中

我在我的 Lambda 函数中使用 Boto3 来做同样的事情。

我的代码是:

       try:
            print("Bucket: ", s3bucket)
            print("Key: ", s3Key)
            copy_source = {
                  'Bucket': s3bucket,
                  'Key': s3Key
                }
            bucket = s3_resource.Bucket(s3bucket)
            bucket.copy(copy_source, destination_s3_loc)
            print("ARCHIVE copy done")
        except Exception as ex:
            print("Error Copying to ARCHIVE: {0}".format(ex))

上面的代码打印如下:

Bucket:  adl-dl-data-raw-ue1-dev
Key:  SUPPLY_CHAIN/SOURCE/TXT_3PL - Jan 28.xlsx
ARCHIVE copy done

目标路径如下所示:

destination_s3_loc = "s3://adl-dl-data-raw-ue1-dev/SUPPLY_CHAIN/SOURCE/ARCHIVE/TXT_3PL - Jan 28.xlsx"

代码没有抛出任何错误或异常。

我有什么遗漏吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-lambda boto3


    【解决方案1】:

    改变这个:

    destination_s3_loc = "s3://adl-dl-data-raw-ue1-dev/SUPPLY_CHAIN/SOURCE/ARCHIVE/TXT_3PL - Jan 28.xlsx"
    

    到这里:

    destination_s3_loc = "SUPPLY_CHAIN/SOURCE/ARCHIVE/TXT_3PL - Jan 28.xlsx"
    

    copy 方法期望目标是 S3 对象键(在同一个存储桶中),而不是完全限定的 S3 对象 URI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 2018-05-08
      • 2016-11-05
      • 2021-07-28
      • 1970-01-01
      • 2011-04-28
      • 2021-04-13
      相关资源
      最近更新 更多