You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让通过AWS Glue保存到S3的文件可公开访问

使用AWS Glue将输出文件设置为公开可访问的方法

要让AWS Glue写入S3的文件公开可访问,核心是在写入时指定public-read权限的ACL,以下是具体实现步骤:

1. 在Glue作业中指定ACL参数

在使用write_dynamic_frame.from_options写入数据时,通过connection_options添加acl参数并设置为public-read,示例代码如下:

from awsglue.context import GlueContext
from pyspark.context import SparkContext

sc = SparkContext()
glueContext = GlueContext(sc)

# 此处替换为你的数据处理生成的DynamicFrame
dynamic_frame = ... 

# 写入S3并设置公开可读权限
glueContext.write_dynamic_frame.from_options(
    frame=dynamic_frame,
    connection_type="s3",
    connection_options={
        "path": "s3://你的存储桶路径/输出目录/",
        "acl": "public-read"  # 关键配置:开启公开可读
    },
    format="parquet"  # 根据需求替换为csv、json等格式
)

如果使用Spark原生写入方法,也可以通过option指定ACL:

dynamic_frame.toDF().write \
    .option("path", "s3://你的存储桶路径/输出目录/") \
    .option("acl", "public-read") \
    .format("parquet") \
    .save()

2. 确保Glue角色具备必要权限

Glue作业使用的IAM角色必须拥有s3:PutObject和s3:PutObjectAcl权限,可在角色的权限策略中添加以下规则:

{
    "Effect": "Allow",
    "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
    ],
    "Resource": "arn:aws:s3:::你的存储桶路径/输出目录/*"
}

3. 检查S3桶的公共访问设置

需确保S3桶的**块公共访问(Block Public Access)**未完全禁止公共权限:

  • 进入S3桶的权限设置页面
  • 确认“阻止所有公共访问”未勾选,或至少允许通过ACL授予公共访问权限

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:25:17