从S3下载,存储在Lambda的/tmp/中,并解压到/tmp/目录中的步骤如下:
import boto3
def lambda_handler(event, context):
s3 = boto3.client('s3')
bucket_name = event['Records'][0]['s3']['bucket']['name']
object_key = event['Records'][0]['s3']['object']['key']
download_path = '/tmp/' + object_key.split('/')[-1] # 构建下载路径
s3.download_file(bucket_name, object_key, download_path)
在上述代码中,首先导入boto3库,然后创建S3客户端对象。通过解析Lambda函数的事件参数,获取上传文件所在的S3存储桶名称和对象键(路径),构建下载路径。最后,使用download_file
方法将文件下载到Lambda函数的临时目录/tmp/
中。
subprocess
模块执行Linux命令的示例代码:import subprocess
def lambda_handler(event, context):
# 下载文件代码省略...
# 解压文件
subprocess.call(['unzip', download_path, '-d', '/tmp/'])
在上述代码中,使用subprocess.call
方法执行Linux命令unzip
,将下载的文件解压到/tmp/
目录中。
完成以上步骤后,Lambda函数就能够从S3下载文件,存储在/tmp/
目录中,并解压文件到/tmp/
目录中。接下来,可以根据具体需求对文件进行进一步处理或者执行其他操作。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云