# cloudfile-cors

> cloudfile-cors

Latest version **0.0.1** (published 2015-12-30) · 0 weekly downloads

## Install

```sh
npm install cloudfile-cors
pnpm add cloudfile-cors
yarn add cloudfile-cors
bun add cloudfile-cors
```

## Health

**Score 10/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; low quality score; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2015-12-30 |
| First published | 2015-12-30 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | * |
| Dependencies | 2 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Julien Loutre |
| Maintainers | 26medias |

## Links

- npm: https://www.npmjs.com/package/cloudfile-cors
- Repository: https://github.com/26medias/cloudfile-cors
- Issues: https://github.com/26medias/cloudfile-cors/issues
- npm.io page: https://npm.io/package/cloudfile-cors

## Dependencies (2)

- [underscore](https://npm.io/package/underscore.md) latest
- [curlrequest](https://npm.io/package/curlrequest.md) ^0.5.4

## Recent versions

- 0.0.1 (latest) — 2015-12-30

## README

# Rackspace CloudFile CORS for NodeJS #

This module allows to make your files hosted on Rackspace Cloud Files CORS compatible, by setting up the right custom headers to the files of your choice.

There didn't seem to be a way to do it with the pkgcloud package or any other packages for that matter.

## Installation ##

	npm install cloudfile-cors

## Usage ##

	
	var cfcors = require("cloudfile-cors");
	
	// Create a new instance
	var instance = new cfcors({
		username: 'rackspace-username',
		apiKey:   'rackspace-api-key'
	});
	
	// Setup the CORS custom headers on that file
	instance.cors({
		container:	'your-container-name',
		file:		'somefile.html'
	}, function(response) {
		// It's done
	});


## Important note ##
On Rackspace Cloud File, setting up the `Access-Control-Allow-Origin: *` header on your file is not enough.

Your container needs to have a custom header too, for CORS to work.
Use the following method to setup your container to be CORS-compatible:

	instance.corsContainer({
		container:	'your-container-name'
	}, function() {
		console.log("DONE!");
	});

Your container will now have a `X-Container-Meta-Access-Control-Allow-Origin: *` header setup.

You only need to do that once.

## Advanced Options ##

You can have a little more control

	var cfcors = require("cloudfile-cors");
	
	// Create a new instance
	var instance = new cfcors({
		username: 'rackspace-username',
		apiKey:   'rackspace-api-key',
		region:   'IAD',	// The region. If not provided, your account's default region will be used.
		identity: 'https://identity.api.rackspacecloud.com/v2.0/tokens'	// Identity service to use (but you shouldn't need to specify that)
	}, function(client, authtoken) {
		/*
			"client" is a reference to the instance you've created
			"authtoken" contains an objects:
			{
				id: 'AADGgo3eeCQH3L_OMTYAJhjGuV0VWWFGqCIWfWenFJraDxw1CW0zkxFR3Lix8JTDFmRDTrei4MgG9hoNUN6QvzzFqa0e3JxhI0Z7areBH2oU9Hvd1THDHgFVXAqfjXvyOUk2ywz6VZ9XCA',
				expires: '2015-12-31T17:00:24.885Z',
				tenant: {
					id: '891900',
					name: '891900'
				},
				'RAX-AUTH:authenticatedBy': [ 'APIKEY' ]
			}
		*/
	});

You can set custom headers if you want to setup more than the CORS headers:

	instance.setCustomHeaders({
		container:	'your-container-name',
		file:		'somefile.html',
		headers:	{
			'Content-Type':	'application/json',	// Change the content-type
			'X-My-Custom-Header': 'HelloWorld'	// Set a completely custom header
		}
	}, function() {
		// It's done
	});



To setup custom headers on the container instead of a file:

	instance.setContainerCustomHeaders({
		container:	'your-container-name',
		headers:	{
			'X-My-Custom-Header': 'HelloWorld'	// Set a completely custom header
		}
	}, function() {
		// It's done
	});

---
_Source: https://npm.io/package/cloudfile-cors · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
