Java代写|PROG2003 – Cloud Systems Development Assignment 1


Your task is to create a website that prints all the existing file details in an S3 bucket. To make the website dynamic, you need to create a Cloud9 app that would work as a “backend” for the website.

Your submission will be evaluated based on:

This assignment, which is to be completed individually, is your chance to gain an understanding of the fundamental concepts of listing and creating S3 objects on which later learning will be based. It is important that you master these concepts yourself.

Since you are mastering fundamental skills, you are permitted to work from the examples in the MySCU site or textbook, but you must acknowledge assistance from other textbooks or classmates. In particular, you must not use online material or help from others, as this would prevent you from mastering these concepts.

This diagram will help you understand where you can get help:

Encouraged Attribution Required Not acceptable Ask tutor

Be aware that if you do get help from one of the red sources, you will be reported for academic misconduct, which may have serious penalties. Please visit the following link for the guidelines:

Overview: You have to create a website that prints the current file names and their sizes in an S3 bucket. The website will be hosted in the same bucket and will have an index and an error page. The index page will print the file list and the error page will print some error messages. The index page would look like the screenshot below.

You need to use the UA-provided AWS account for all assessment tasks. A personal AWS account is not acceptable.

Details: The details of the assignment tasks are described below.

Part A: The website (6 marks): The index and error pages ideally would be the index.html and error.html files. The error page will be displayed upon entering the wrong/invalid URL. The index page will print a list of names and sizes of the “current” files (i.e., known as objects in S3) within an S3 bucket. If the bucket is empty then the index page should print a message “There are currently no objects”. You need to host a static website with two pages (index.html, and error.html) in the bucket.

You need to configure the bucket with the appropriate “bucket policy” and “public access” so that your website can be accessed publicly.

The index page must reflect any changes to the number of files in the bucket. If you delete from or add a file to the bucket, the index page must reflect that. You might be wondering how that would be possible by a static website. To implement this “dynamic” functionality, you need to implement a Cloud9 app that can: (a) list the current file names and their sizes; and (b) create (or overwrite) an index file with the current file names and sizes in the bucket. The app will be executed each time before running the website so that the index.html always displays the updated list of current files and their sizes.

Part B: The Cloud9 app (24 marks): The Cloud9 app will have two main features – listing all file names(i.e., object names or keys) as well as their sizes in the bucket, and creating a new file/object with the name/key “index.html” within the bucket. Upon serving, the index.html will display these names and sizes. It will print a message “no object available” if the bucket is empty. It has been taught during the tutorial that while creating an object in a bucket, you need to specify the content of the object. The content of the index.html in this case will include the current object names and their sizes. You will get the names and sizes of the objects by implementing the listing feature. You need to embed this information with HTML code to prepare the content of the index.html. The error.html will be very simple and will display a relevant error message, e.g., page not found.

Requirements: Your website and Cloud9 app must fulfil the following requirements. You will lose marks otherwise.