66
loading...
This website collects cookies to deliver better user experience
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:0.11.0
create-react-app
npx create-react-app appwrite-storage
appwrite
js package to your project.npm install appwrite
localhost
and for production register a new web platform with the domain name.// Create a new file under lib/appwrite.js
import { Appwrite } from "appwrite";
let api = {
sdk: null,
provider: () => {
if (api.sdk) {
return api.sdk;
}
let appwrite = new Appwrite();
appwrite
.setEndpoint("appwrite-endpoint-url")
.setProject("project-id");
api.sdk = appwrite;
return appwrite;
},
createSession: (email, password) => {
return api.provider().account.createAnonymousSession();
},
createFile: (file) => {
return api.provider().storage.createFile(file, ["*"], ["*"]);
},
getFileView: (id) => {
return api.provider().storage.getFileView(id);
}
};
export default api;
project-id
in appwrite console under settings in your projectWarning: You cannot create a file in appwrite storage without signing in with a user
src/App.js
using useEffect
react hook.import "./index.css";
import { useEffect } from "react";
import api from "./lib/appwrite";
function App() {
useEffect(() => {
api
.createSession()
.then((response) => {
console.log(response);
})
.catch((err) => console.log(err));
}, []);
return <div></div>;
}
export default App;
api.createFile()
) to upload file to Appwrite storage.input
field with type of "file"
import "./index.css";
import { useEffect, useState } from "react";
import api from "./lib/appwrite";
function App() {
useEffect(() => {
api
.createSession()
.then((response) => {
console.log(response);
})
.catch((err) => console.log(err));
}, []);
const [image, setImage] = useState(null);
const handleSubmit = async () => {
if (image !== null) {
const respsone = await api.createFile(image);
console.log(respsone);
} else {
alert("No file is uploaded");
}
};
return (
<div className="min-h-screen bg-primary flex justify-center items-center">
<form onSubmit={() => handleSubmit()}>
<input
type="file"
required
onChange={(event) => setImage(event.currentTarget.file[0])}
/>
<button type="submit">Submit</button>
</form>
</div>
);
}
export default App;
api.getFileView()
) to get file URL from Appwrite storage.api.createFile()
,const respsone = await api.createFile(image);
console.log(respsone["$id"]); // Logs the file ID
const url = api.getFileView(fileId).href;
console.log(url);