- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个在 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/
我是一名优秀的程序员,十分优秀!