PROG2003 – Cloud Systems Development Assignment 1
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.
Copyright By PowCoder代写 加微信 powcoder
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.
PROG2003 – Cloud Systems Development Assignment 1
• Your Cloud9 app must be named yourscuusernameA1App.
• You will use a single bucket for the whole assignment and its name must be yourscuusername-
a1-bucket.
• Your Cloud9 app must have separate methods for the two features – listing and creating.
• Your Cloud9 app must use exception handling and loop(s).
• You must use AWS SDK v 2.x to implement the Cloud9 app.
• You must implement the assignment in the SCU-provided AWS account, personal AWS
account will not be accepted.
• You need to add comments inside your source code.
Solution Hints: Check the following hints for implementation.
• A newly created object by default has a content type of “application/octet”. Such objects behave as attachments. This will not fulfil the purpose for a website, where the HTML pages need to serve. You need to explore the content-type property of the PutObjectRequest class for this purpose.
• You can use an unordered HTML list (
- …..
) for the index.html to display the object names. Check this link out: https://www.w3schools.com/html/html_lists_unordered.asp.
Submission Checklist: The marker will access your AWS Academy workspace (provided by the UA), check your app, and directly mark your app from there. If your AWS console provided by the UA is not accessible, you will lose a significant mark. You have to zip the app project folder and submit it in Blackboard as well. Blackboard submission list:
• Zipped app folder for the Cloud9 app.
• A text file containing the URL of the static website.
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com