2008-08-26 52 views
28

Có cách nào để biến S3 thành trang index.html không? Ví dụ .: xô My đối tượng niêm yết:Có cách nào để có chức năng index.html với nội dung được lưu trữ trên S3 không?

/index.html 
/favicon.ico 
/images/logo.gif 

Một cuộc gọi đến www.example.com/ index.html hoạt động tuyệt vời! Nhưng nếu một người gọi www.example.com/, chúng tôi sẽ nhận được 403 hoặc một đối tượng REST liệt kê tài liệu XML tùy thuộc vào cách cấu hình ACL cấp nhóm.

Vì vậy, câu hỏi: Có cách nào để có chức năng index.html với nội dung được lưu trữ trên S3 không?

Trả lời

34

Amazon S3 bây giờ hỗ trợ Index Documents

Tài liệu index cho một cái xô có thể được thiết lập để một cái gì đó giống như index.html. Khi truy cập thư mục gốc của trang hoặc thư mục con chứa tài liệu của tên đó, tài liệu được trả về.

Nó là vô cùng dễ dàng để làm bằng cách sử dụng AWS cli:

aws s3 website $MY_BUCKET_NAME --index-document index.html 

Bạn có thể thiết lập các tài liệu index từ Management Console AWS:

enter image description here

+0

Vừa đọc về điều này một vài giờ trước ... thật tuyệt ... –

+0

Vâng. Tôi đã đăng bài này ngay sau khi tôi nghe thông báo. –

+0

PS: Yêu vòng tròn tự do;) –

2

Tôi khuyên bạn nên đọc this thread từ năm 2006 (Trên kết nối nhà phát triển dịch vụ web Amazon). Có vẻ như không có giải pháp dễ dàng cho việc này.

0

bạn có thể làm điều đó bằng cách sử dụng dns webforwards và kỹ thuật che giấu. chỉ cần chuyển tiếp đến đường dẫn đầy đủ của index.html

www.example.com chuyển tiếp đến http://www.example.com.s3.amazonaws.com và đảm bảo bạn che dấu đầu ra.

2

Có. sử dụng AWS Cloudfront cho phép bạn chỉ định tệp mặc định.

4

Bạn có thể dễ dàng giải quyết nó bằng Amazon CloudFront link. Tại Amazon CloudFront bạn có thể sửa đổi đối tượng gốc. Bạn có thể tải xuống trình quản lý tại đây: m1.mycloudbuddy.com/downloads.html.

+0

Hà, tôi đã hoàn toàn quên về câu hỏi này hai tuổi. Vâng, CloudFront tốt hơn rất nhiều trong việc phân phối nội dung nói chung từ S3. –

31

Đối với những người vẫn đang đấu tranh chống lại sau 3 năm, hãy để tôi thêm một số thông tin quan trọng:

URL cho trang web của bạn (và mà bạn có để chỉ DNS của bạn) không phải là

<bucket_name>.s3-us-west-2.amazonaws.com, nhưng

<bucket_name>.s3-website-us-west-2.amazonaws.com.

Nếu bạn sử dụng thiết bị đầu tiên, nó sẽ không hoạt động như dự định, cho dù bạn định cấu hình bao nhiêu Index document.

Đối với một ví dụ cụ thể, xem xét:

Để nhận địa chỉ trang web thực sự của bạn, hãy truy cập S3 Management Console, chọn nhóm đích, sau đó Properties, sau đó Static Website Hosting. Nó sẽ hiển thị URL trang web sẽ hoạt động.

+3

Đây là TRẢ LỜI TRÁCH NHIỆM! Cảm ơn bạn! –

+2

Cảm ơn bạn đã giải quyết xong vấn đề của tôi! –

+2

Cảm ơn bạn! Điều này đã cản tôi 15 lần và tôi không bao giờ hiểu tại sao. –

3

Vì Đã lâu rồi, câu hỏi này được hỏi và Amazon S3 thay đổi Giao diện của chúng. Tôi muốn trả lời với các ảnh chụp màn hình được cập nhật.

Chúng tôi cần bật 'lưu trữ web tĩnh' cho S3 để phục vụ như là lưu trữ web. - Chuyển đến Thuộc tính -> nhấp vào lưu trữ web tĩnh -> Chọn 'sử dụng nhóm này để lưu trữ trang web' - Nhập tài liệu chỉ mục (index.html theo mặc định), tài liệu lỗi và quy tắc chuyển hướng, nếu có. Selecting static web hosting

use-this-bucket-to-host-a-website

Như đã trả lời ở https://stackoverflow.com/a/24377823/3086531, liên kết webhosting sẽ

http://bucket-name.s3-website-region.amazonaws.com

Các vấn đề liên quan