Amazon product api import to DB - amazon-web-services

I've got access to the Amazon products API and I would like to create a website around it.
To create a website I thought on access the API and import the products information into database than use the information to create page and add a products description.
I have a few questions about it:
How I can save the relevant products into my database? I'm using PHP.
What is the best way to build this kind of website?

You got taken a wonderful initiative.
Below AWS technologies will help you to achieve in a scalable way.
DynamoDB:
To store data you can use DynamoDB,
https://aws.amazon.com/dynamodb/
To use with php,
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-dynamodb.html
S3 with cloudfront:
To serve static webcontent you can use s3 and cloudfront.
http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/MigrateS3ToCloudFront.html
S3 PHP API:
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html
You might not need API for cloudfront initially, manual configuration might work. But below is for reference,
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-cloudfront.html
Be prepared to read a lot. Since you could build with some innovative product that could help millions of people.
Good Luck!

Related

Is there an Amazon api

Hi there I am wondering if there is an amazon api that lets you browse there catalogue, eg item name price, competitors and so on. I am aware of two amazon api's one used for promoting there products but I am a little unsure of the other one and if I can use the other api for my project
There is the Advertising API, which seems to do what you want.
You can browse their nodes using this.

Setup Multiple Custom Domains for Clients using AWS

I want to give my customers an option to put their website (HTML, CSS, PHP (optional) ) in a custom domain.
By default, customers will get a basic subdomain like: their-site.mydomain.com
If they upgraded to Pro, I wanted to give an option to use custom domain by adding A record or CNAME.
After some google research, I found that lot of companies are using Amazon AWS for this task. However after checking different article, I did not get any idea how this would work with amazon or any other server.
All stuff needs to be done from the my Application UI by customers. There should be atleast 100s or 1000s of domains. I wanted to redirect each of them to their own website.
Any Idea how this will work? Please add all details if possible.

How to correctly upload photos/files in a Django + Angular decoupled application to S3?

I have a decoupled applications build with Django 2, an API with DRF and an Angular 6 frontend application. I want to enable users to upload photos for their profiles, and probably in the future some pdfs, and after some research I figured out that the most convenient thing to do would be to store these files in an Amazon S3 bucket.
I have found numerous resources about how to upload files to an S3 bucket on both, Angular and Django, and now I was wondering what would be the best approach to do this in my decoupled application: should I manage it on the frontend and not use my backend at all? or should I pass the file from my angular to my Django app and then upload it to the bucket from there?
Some pros and cons of both approaches? It's my first time doing this and I haven't been able to find many resources for decoupled applications.
Any help is welcome! thanks!
The best practice
Anything related to data must be managed by your backend i.e Django, Angular is just a client.
You should pass the file from angular to Django app and then upload it
to the s3 bucket from there
Cons using client
Suppose in future, if you will develop mobile apps to consume your rest APIs then you need to rewrite the whole management there also.
You have to keep your s3 bucket API keys on the client and it is easily accessible to hackers.
dist folder size will be going to increase that will affect the load time of your site
If you are uploading files from client to S3 bucket, it will use the user's internet and in most of the cases it is slower than your sever's internet

Hiding AWS secret from application

I'm a Java backend engineer working on a feature that the frontend (SPA and Android) must send (large) files to S3. Since I have to manage with a lot of requests. Because of network overload reasons I'm avoiding to make a 'proxy' service where the frontend send me the file so that I can send it to S3 but I have some concern about the best way to keep my apps secure.
I looked for some solutions but I cannot find one that manages exactly what I want.
Amazon S3 upload with not showing secret key in frontend
This post has almost my answer but I don't have enough score to comment.
S3 upload directly in JavaScript
I read some documentation on AWS but I still have some questions and some requisites.
The solution may permit the client an authenticated user to send a file to s3 directly
It may make a GET call to get some token or something like that (without sending a lot of data)
It's to be secure (no secret key knowledge at the frontend)
Which solution may be good for me?
The backend may generate a signing key and send it to frontend making the request to AWS (http://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html)
I can use STS to generate a temporary credential for each upload.
Do you think these approach will work? Which one do you think is better? What are the trade offs? Is there other way to deal with this problem?
Best thing to do here is use the Cognito service to generate anonymous credentials in the app that allow an upload to S3. For Android you can use the SDK then to do multi-part uploads from the device to S3, which will speed up the process as well.
I couldn't find an exact Android example, but this is one for iOS and the terminology should transfer the same, just with the other SDK: iOSTransferManager .
You can also call Cognito directly from javascript, if you have a web based app: Cognito in JS example
Hope that helps!
- Chris

Amazon Web Store Inventory as RSS/Data feed

I have been reviewing the setup of a current Amazon Web Store implementation to figure out some of the systems capabilities. The end goal is to pull a feed that i can reuse and transform for Channel Adviser. The documentation on Amazon Web Store is a little sparse and I'm wondering if anyone here has a little experience with this specific product scenario (pull inventory from Web Store Account).
The current goal is to pull down the inventory for the store in a feed via RSS or any other suitable format. I have been looking at the RSS web feeds for Tags # amazon.com page but I dont think it's available for the web store product or feasible to pull an entire store's inventory this way.
-my research has led me to the amazon product advertising API but looking at the WSDL for the service, the only relevant service calls I see are ItemSearch, ItemLookup and SimilarityLookup; none of these seem to explicitly support Web Store and they dont really seem entirely appropriate for pulling the Web Store's entire inventory (although they do appear to accept a merchant ID). Does anyone know of a common or appropriate way to get access to this data?
Thanks in advance for any specific guidance you can provide
After a couple of contacts with Amazon Seller support, it appears that the most appropriate solution is to set up an Amazon Marketplace Web Services account and use those apis. The 'Inventory' api seems to be exactly what we were after (although the support email suggested the Reports section).
Response from Amazon Seller Support
We checked and we have a different program that fits your needs called MWS (Market Place Web Service), you would have to sign up for an account first which is for free. Please visit this link to find out more information:
https://developer.amazonservices.com/
Click on reports and then on Amazon MWS Developer Guide (PDF) and you will be able to get more information related to your concern.