Description
Description In this part, you are going to write a client program for BBS service. However, in this part, the content of the post will store on the client-side (Amazon S3) instead of the server-side. Take the post function of the BBS service, for example. The server in this part only stores the metadata of posts (e.g., post id, post title, author and date.) except for the content of the post. That is to say, each client has its storage to store the content of their posts, and we use Amazon S3 for the storage service. Besides, you are also going to implement new features such as a simple mail service. System Architecture The server here only stores user information, boards and some metadata of posts. (e.g., post id, post title, etc). The real content of the post will store on the client-side (Amazon S3). Each bucket of Amazon S3 represents the storage of each client. So, each client can store the content of its posts in its bucket, and this bucket is also an incoming mailbox for the mail service of this client. Note that only your client program can get access to Amazon S3 using Amazon S3 API. Requirements The service can serve at least 10 clients. Your server and client program must be able to handle all commands in the previous part (output results must be the same as the previous part). For some commands such as whoami, exit, logout, create-board, list-board ## and list-post ##, your client program only sends the command to the server and gets the corresponding result from the server. However, there are some commands that your client program will interact with Amazon S3. These commands are described as follows: Command format Description Result register If successful execution, your client program will create a new bucket in Amazon S3 for this new user, and your server program will store the bucket name of this new user so that the user will be able to log in with its bucket in the future. If failed, only print the error message. Success Register successfully. Fail Username is already used. login If successful execution, the user will log in with its Amazon S3 bucket, so that it can manipulate (e.g., upload posts, delete posts, etc) its bucket in the future. If failed, only print the error message. Success Welcome, . Fail (1) Please logout first. Fail (2) Login failed. create-post –title

