Pythonlambda aws:[Errno 2]没有这样的文件或目录:如何解析实际路径

2024-10-02 08:19:20 发布

您现在位置:Python中文网/ 问答频道 /正文

还有一些问题。我正试着用多米尼多姆. 在

示例:

from __future__ import print_function
import sys
import time
import logging
import rds_config
import pymysql
import os
import io
import zipfile
import gzip
import urllib
import tempfile
import botocore
import traceback
import datetime
import boto3
import uuid 
import xml.dom.minidom
from concurrent import futures
from io import BytesIO
from datetime import timedelta,datetime

def readingXML(self,ruta):
    try:
        print('readingXML...')
        #self.s3 = boto3.client('s3')
        #ruta = xmls/(xmlname.xml)
        full_path = "s3://"+self.bucket+"/"+ruta
        print(full_path)
        doc = minidom.parse(full_path)
        #variables de xml - Comprobante

并得到以下错误消息:

[Errno 2] No such file or directory: u's3://mi-bucket/xmls/A91C7BE1-015A-4A1A-9A85-3B065122E1EB.xml'


Tags: pathfromioimportselfdatetimes3xml
1条回答
网友
1楼 · 发布于 2024-10-02 08:19:20

您正在指定minidom不支持的s3url。你需要先下载然后处理。在

您需要查找S3文件的URL。aws3控制台可以提供这种功能。假设它是变量urlpath的http://mybucket.s3.amazonaws.com/myfile。还要验证对象是否具有公共访问权限。在

1)将文件下载到内存中

import requests
urlpath = 'http://mybucket.s3.amazonaws.com/myfile'
r = requests.get(urlpath)

2)创建DOM对象(解析XML):

^{pr2}$

现在已经加载了DOM对象。按要求处理。在

注意:我的示例代码不处理或检测错误。在

[编辑]

如果S3对象是私有的,则需要使用AWS pythonsdk(boto3)添加代码,该SDK使用AWS凭据访问S3文件。在

相关问题 更多 >

    热门问题