gpt4 book ai didi

javascript - 从本地计算机上的 Ubuntu (AWS EC2) 读取文件?

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:27 26 4
gpt4 key购买 nike

我有一个在 AWS 上运行的 Python 脚本(带有 Ubuntu 的 EC2 实例)。这个 Python 脚本每天输出一个 JSON 文件到 /home/ubuntu 中的目录:

with open("/home/ubuntu/bandsintown/sf_events.json", "w") as writeJSON:
file_str = json.dumps(allEvents, sort_keys=True)
file_str = "var sf_events = " + file_str

这里的一切都按预期工作。我的问题是我不确定如何将此 JSON(存在于 Ubuntu 上)读入我在本地计算机上运行的 JavaScript 文件。

如果我从 Ubuntu 调用文件,JavaScript 找不到文件:

<script src="/home/ubuntu/bandsintown/sf_events.json"></script>

换句话说,我想将我在云中创建的 JSON 读取到本地计算机上存在的文件中。我应该在 /home/ubuntu 以外的地方输出 JSON 吗?或者,我的本地文件能否以某种方式将 /home/ubuntu 识别为文件位置?

最佳答案

出现此问题是因为文件不存在 在您的本地计算机上,仅存在于正在运行的 EC2 实例上。一种可能的解决方案是将 JSON 文件从 EC2 实例上传到 S3,然后将 JSON 文件下载到您的本地计算机 /home/ubuntu/bandsintown/sf_events.json

首先,在运行的 EC2 实例上安装 AWS CLI 工具包 AWS CLI并在终端中运行以下命令

aws configure
aws s3 cp /home/ubuntu/bandsintown/sf_events.json s3://mybucket/sf_events.json

或安装 Python AWS SDK boto3并通过python上传

s3 = boto3.resource('s3')

def upload_file_to_s3(s3_path, local_path):
bucket = s3_path.split('/')[2] #bucket is always second as paths are S3://bucket/.././
file_path = '/'.join(s3_path.split('/')[3:])
response = s3.Object(bucket, file_path).upload_file(local_path)
return response

s3_path = "s3://mybucket/sf_events.json"
local_path = "/home/ubuntu/bandsintown/sf_events.json"
upload_file_to_s3(s3_path, local_path)

然后在您的本地计算机上通过 AWS CLI 从 s3 下载文件

aws configure
aws s3 cp s3://mybucket/sf_events.json /home/ubuntu/bandsintown/sf_events.json

或者如果您更喜欢 python SDK:

s3 = boto3.resource('s3')

def download_file_from_s3(s3_path, local_path):
bucket = s3_path.split('/')[2] #bucket is always second as paths are S3://bucket/.././
file_path = '/'.join(s3_path.split('/')[3:])
filename = os.path.basename(s3_path)
s3.Object(bucket, file_path).download_file(local_file_path)

s3_path = "s3://mybucket/sf_events.json"
local_path = "/home/ubuntu/bandsintown/sf_events.json"
download_file_from_s3(s3_path, local_path)

或者使用在浏览器中运行的 Javascript SDK,但我不推荐这样做,因为您必须公开您的存储桶并注意浏览器兼容性 issue

关于javascript - 从本地计算机上的 Ubuntu (AWS EC2) 读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59012982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com