我正在尝试编写一个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"
代码没有抛出任何错误或异常。
我错过了什么吗?
修改如下:
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。