Configuring environment variables for static web site on AWS S3 [closed] - amazon-s3

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
I am trying to setup a simple static Angular website on S3 per the info:
http://docs.aws.amazon.com/gettingstarted/latest/swh/website-hosting-intro.html
I want to send email via a form that needs to send sendgrid api keys. Obviously, I want to use environment variables for this to avoid having keys in code. How do you setup environment variables in S3?
I looked into aws-cli tool but it only shows examples of what appear to be AWS specific enviroment variables. Is there somewhere in AWS/S3 console were these can be set?
BTW- I would like to use this Angular service which demonstrates the sendgrid service:
https://github.com/onaclovtech/sendgrid/blob/master/sendgrid.js

You can't set environment variables in S3. S3 is just a static object store, not a dynamic content server. To evaluate variable values would be the very definition of dynamic content, and S3 only serves static content.
Note that AngularJS code runs in the browser, not on a server, so those keys you want to keep out of your code are going to be viewable in the browser by anyone that knows how to look. There's no way for you to hide those values if you want to call SendGrid from a client-side framework.

Most of the reputed email marketing companies won't even allow calling their services from a front-end where the keys could be exposed such as MailChimp. You can read the below:
Note: MailChimp does not support the client-side implementation of our API using CORS requests due to the potential security risk of exposing account API keys.
Now, it may happen that many a time, you would want to still use environment variables to separate environments and such (non-sensitive information). In such scenarios, you should use the environment variables on your machine and generate builds with the help of webpack or some other build tool.

Related

Looking for a tool to record and resend http requests from my browser [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
In order to do some testing I'm looking for a tool to make http requests. Most of my request have several parameters and options set up on the request. I had been spending a lot of time copying each parameter and each option. I don't want a software or some plugin to make http requests. I'm looking for a tool that make me able to listen and record the http request that my browser does, and later let me modify them, and send them again. Is there some tool like that?
In Chrome I use Postman. It keeps a running log of all requests that have been made so it's easy to go back to previous ones. You can also save requests into collections.
In Firefox, try HTTP Resource Test.
EDIT: After more careful reading I see you want to actually record and re-send requests. I believe Fiddler may allow you to do that.
Also, you could export the network log (e.g. from the Chrome developer tools page) to a HAR file and write a script to replay the requests. Or import the HAR file back into existing tools. See this thread for more info: https://superuser.com/questions/360992/what-format-does-google-chrome-developer-tools-save-data-as

How does Dropbox work? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
How does Dropbox work? Is it just an FTP client with an easy-to-use web interface and support for many plarforms?
What makes it so useful to programmers, even for those who are working on web-based applications and who have FTP access to a server by default?
Does Dropbox come with an improved algorithm to facilitate file transfer for a better speed? What is the difference between an FTP client and Dropbox from a programmer's point of view?
FTP is just a way of copying files. And copying is not the same as synchronizing, which I believe is Dropbox's biggest strength.
Dropbox is a multiway synchronization system. This means if you are using your Dropbox account on many machines and editing different files on each machine, they will all be synchronised appropriately. With FTP you would have to delicately pick and choose which files need to be removed or added from each client to the server.
Another main difference is that synchronisation happens automatically whenever a file changes, which FTP does not do.
In terms of algorithms, I would guess that Dropbox uses file deltas for file transfer, which makes it much more efficient than FTP. This means only the parts of the file that changed are transferred instead of transferring the entire file every time it changes (see rsync).
I believe you are only asking about Dropbox's core functionality. Beyond that, Dropbox has lots of cool features that FTP does not like some revision control, photo gallery sharing, etc.
Dropbox files are not accessible by FTP. The API uses a REST-style architecture over the HTTP protocol. See Build the power of Dropbox into your app.

Offline Amazon S3 [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
So I would like to try using Heroku to be my server, however heroku does not allow writing to its file system. Instead I need to use the database and something like Amazon S3 for storage of things like uploaded images.
The problem is that I often don't have internet access when developing. Or very poor internet access. So developing for Amazon S3 is kind of impractical. Is there an offline version to use so that my local machine can act as the S3 cloud, and when in testing/production environments I can use the real S3?
Old question but wanted to post this, there is a "Fake S3" tool that appears to be designed to do exactly this. Just about to give it a whirl.
https://github.com/jubos/fake-s3
My recommendation is to try s3fs with rsync. Here's how it would work:
Mount your s3 drive to /mnt/sdaX/ on your production machine and /mnt/sdaY/ on your local machine.
Create a file system at /mnt/sdaX/ on your local machine.
Make the changes on your local machine as needed. When appropriate, rync /mnt/sdaX/ to /mnt/sdaY/ on your local box.
I realize that this is complicated, but I'm not sure that there's really any other way to do it while maintaining the same configuration in both places. Normally I'd say you should just write to the s3fs drive locally with local caching enabled, but I'm not sure what happens when you return online (I'm pretty sure it doesn't sync, but I've gone ahead and asked s3fs developers).
Best,
Zach
Developer, LongTail Video
Have a look at:
Eucalyptus Walrus
Park Place
It might be some work to get them running, however. I finally wanted to write my own clone using node.js, but it has moved far away from the original S3 API, so it won't really help you anymore.

web tracking tool [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
can any one sugest me which is the best but free web tracking tool ?
I want to know the statics, traffics, hits and area of hits etc...
Google Analytics is an obvious suggestion. However, if you prefer to host your own solution (because you don't want to send private data to Google for example), then have a look at Open Web Analytics, a very impressive alternative (see the features list).
Open Web Analytics (OWA) is an open source web analytics framework written in PHP. OWA was born out of the need for an open source framework that could be used to easily add web analytics features to web sites and applications. The OWA framework also comes with built-in support for popular web applications such as Wordpress and MediaWiki. As a generic web analytics framework, OWA can be extended to track and analyze any web application.
(source: openwebanalytics.com)
Another very decent alternative is Piwik:
Piwik is a downloadable, open source
(GPL licensed) web analytics software
program. It provides you with detailed
real time reports on your website
visitors: the search engines and
keywords they used, the language they
speak, your popular pages… and so much
more.
Piwik aims to be an open source
alternative to Google Analytics.
Piwik is a PHP MySQL software program
that you download and install on your
own webserver. At the end of the five
minute installation process you will
be given a JavaScript tag. Simply copy
and paste this tag on websites you
wish to track (or use an existing
plugin to do it automatically for
you).
(source: piwik.org)
Personally, I prefer OWA over Piwik and don't have anything negative to say about it.
Google Analytics has got all the features you specify.
You need a Google account but you don't have to sign up for their advertising programme. If you are already enrolled, Analytics is hooked into other Google products so you can get reports on Ad Sense hits, etc.

Is there any way of delivering server-based Help without a Web server? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
We want to provide Help for a client/server system. In the current version of the system this is done client side with traditional HTML Help (i.e. lots of .chm files sitting on each client machine). For a variety of reasons (e.g. to allow quick/easy updates to the Help) we want to move the Help content (i.e. the actual topic files) onto a server.
The client-side desktop app that the Help relates to already connects to a server, so it seems like we should be able to have a client-side help viewer doing a similar thing - i.e. pulling it's topic files off a server.
However, we don't want to reinvent the wheel and code something if there's already something out there that does this.
The obvious solution would be to use WebHelp, but there's some resistance to requiring our customers to run a Web server. And hosting ourselves, or via a 3rd party, is not an option.
So does anyone know of a way of providing Help where the content resides on the server?
What sort of server are you running? Is there any reason you couldn't host a web server within your server product, potentially on a "normally unused" port? You don't need to ask the customer to install and manage a web server if you bundle it yourself.
What platform is this on, btw?
EDIT: As suggested by David in the comments, there's a related question about a embedding lightweight web server.
You should be able to do this without too much trouble.
I built a CHM-to-Web converter that slurps in a CHM and spits out a web site.
This is an example website produced from the converter tool.
The CHM creation takes a loooooong time, through Sandcastle Helpfile Builder, but the transformation from CHM to web happens in about 6 seconds. It is totally automated.
You could take this magic and tweak it to fit your rich client app. The client could query the server for an index or topic list, and then retrieve the help content as desired by the user, from the server, on demand.
Maybe I've got the wrong end of the stick, but if this all resides on an intranet then maybe you can use a mapped network drive which is shared between all your client machines, e.g. H:/ (you could make it part of their login script). You can then use a file link to get to the HTML pages, e.g. file:///H:/help_folder/index.html
If the rest of your app is delivered across the web, then you'll have to use a web server. There is very cheap and easy web hosting available.