我用Python編寫的2.7 AWS lambda函數中,我想:AWS Python的lambda函數 - 文件上傳到S3
1)抓住.xls文件形成一個HTTP地址。
2)將其存放在臨時位置。
3)將文件存儲在S3存儲桶中。
我的代碼如下:
from __future__ import print_function
import urllib
import datetime
import boto3
from botocore.client import Config
def lambda_handler(event, context):
"""Make a variable containing the date format based on YYYYYMMDD"""
cur_dt = datetime.datetime.today().strftime('%Y%m%d')
"""Make a variable containing the url and current date based on the variable
cur_dt"""
dls = "http://11.11.111.111/XL/" + cur_dt + ".xlsx"
urllib.urlretrieve(dls, cur_dt + "test.xls")
ACCESS_KEY_ID = 'Abcdefg'
ACCESS_SECRET_KEY = 'hijklmnop+6dKeiAByFluK1R7rngF'
BUCKET_NAME = 'my-bicket'
FILE_NAME = cur_dt + "test.xls";
data = open('/tmp/' + FILE_NAME, 'wb')
# S3 Connect
s3 = boto3.resource(
's3',
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=ACCESS_SECRET_KEY,
config=Config(signature_version='s3v4')
)
# Uploaded File
s3.Bucket(BUCKET_NAME).put(Key=FILE_NAME, Body=data, ACL='public-read')
然而,當我運行這個功能,我收到以下錯誤:
'IO錯誤:[錯誤30]只讀文件系統'
我花了幾個小時試圖解決這個問題,但我倒在了我的臉上。任何幫助,將不勝感激。
這當然有幫助! –