{"_id":"@3akram/strapi-provider-upload-google-cloud-storage","_rev":"4-02d4550ddf070d4f809a1014829c6b24","name":"@3akram/strapi-provider-upload-google-cloud-storage","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.1":{"name":"@3akram/strapi-provider-upload-google-cloud-storage","version":"1.0.1","keywords":["strapi","upload","provider","google-cloud-storage","gcs","storage"],"author":{"name":"3akram"},"license":"MIT","_id":"@3akram/strapi-provider-upload-google-cloud-storage@1.0.1","maintainers":[{"name":"3akram","email":"m.akram2122@gmail.com"}],"homepage":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage#readme","bugs":{"url":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage/issues"},"dist":{"shasum":"6dbfbe92c532102f2617887bf3c003e109156322","tarball":"https://registry.npmjs.org/@3akram/strapi-provider-upload-google-cloud-storage/-/strapi-provider-upload-google-cloud-storage-1.0.1.tgz","fileCount":12,"integrity":"sha512-D9afCgBwq9P7qblhjclzEvxM6FWX6xuYOC5Dv1nzu/+QG709F0FO8Rq0fZCAQrK4ySXP9+F6qaRaR6f9rVTu2A==","signatures":[{"sig":"MEQCIH8BjGsDmEY6ZUGcogs59OXJMubRxL3fU5VPkEAq99mvAiBkLowfthWXOmv8pHb+y7YW1hnBkjXRtUFVanB8VjmU6w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16846},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"1a5965d3fc78b9ec6e946b4ae260f2e3fad9638a","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/npm","@semantic-release/git","@semantic-release/github"],"branches":["main"]},"scripts":{"build":"tsc","clean":"rm -rf ./lib","prepare":"yarn build","semantic-release":"semantic-release"},"_npmUser":{"name":"3akram","email":"m.akram2122@gmail.com"},"repository":{"url":"git+https://github.com/3akram/strapi-provider-upload-google-cloud-storage.git","type":"git"},"_npmVersion":"9.9.3","description":"Google Cloud Storage provider for Strapi v5 upload","directories":{},"_nodeVersion":"22.11.0","dependencies":{"@google-cloud/storage":"^6.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^18.0.0","semantic-release":"^21.0.7","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@strapi/strapi":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/strapi-provider-upload-google-cloud-storage_1.0.1_1733344571883_0.9849511801586226","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@3akram/strapi-provider-upload-google-cloud-storage","version":"1.1.0","keywords":["strapi","upload","provider","google-cloud-storage","gcs","storage"],"author":{"name":"3akram"},"license":"MIT","_id":"@3akram/strapi-provider-upload-google-cloud-storage@1.1.0","maintainers":[{"name":"3akram","email":"m.akram2122@gmail.com"}],"homepage":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage#readme","bugs":{"url":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage/issues"},"dist":{"shasum":"d3fe4ffcce4631afb95d0eb388540c2d00abb529","tarball":"https://registry.npmjs.org/@3akram/strapi-provider-upload-google-cloud-storage/-/strapi-provider-upload-google-cloud-storage-1.1.0.tgz","fileCount":12,"integrity":"sha512-55vw3q+NVyJvrWcEGGU8miuOkh9ia4rtyo3Zj89XdEWAAY9RwyS0Qcx2CVPtSJHXU1CEDVWou3TvGJCOnKKUlg==","signatures":[{"sig":"MEQCIHiqZFx88zuUd+XZO7EaWOJBk5+fk4kNXp60WHtpCjUyAiATAfe8vl6cRwtSVlfyHai4BCjKo60sBkbWYJU4STqiqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19178},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"d28bc20ed0b8815c68b4e85e14f0bff1998a4326","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/npm","@semantic-release/git","@semantic-release/github"],"branches":["main"]},"scripts":{"build":"tsc","clean":"rm -rf ./lib","prepare":"yarn build","semantic-release":"semantic-release"},"_npmUser":{"name":"3akram","email":"m.akram2122@gmail.com"},"repository":{"url":"git+https://github.com/3akram/strapi-provider-upload-google-cloud-storage.git","type":"git"},"_npmVersion":"9.9.3","description":"Google Cloud Storage provider for Strapi v5 upload","directories":{},"_nodeVersion":"22.11.0","dependencies":{"@google-cloud/storage":"^6.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^18.0.0","semantic-release":"^21.0.7","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@strapi/strapi":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/strapi-provider-upload-google-cloud-storage_1.1.0_1733345554108_0.5698637394126422","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@3akram/strapi-provider-upload-google-cloud-storage","version":"1.2.0","keywords":["strapi","upload","provider","google-cloud-storage","gcs","storage"],"author":{"name":"3akram"},"license":"MIT","_id":"@3akram/strapi-provider-upload-google-cloud-storage@1.2.0","maintainers":[{"name":"3akram","email":"m.akram2122@gmail.com"}],"homepage":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage#readme","bugs":{"url":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage/issues"},"dist":{"shasum":"9ca7d4aa9386b66862ca76ec1d73068ff6402ef2","tarball":"https://registry.npmjs.org/@3akram/strapi-provider-upload-google-cloud-storage/-/strapi-provider-upload-google-cloud-storage-1.2.0.tgz","fileCount":12,"integrity":"sha512-Oy0Y+arrwk4Et9LJUXaxNRSayWnCQj55yl+aoEIT+K3Sj/7lvzOGr0ygkg9F4zKze+/rBpDxw9outVIhL43pLQ==","signatures":[{"sig":"MEUCIQDMYl0wDa8snsdiiqo3UkGXZ4k/lXY9EN3EVNjyAZeHDwIgcySKSfJIhEVG3Up+P9t+MGDzxntNkG6Ygfnt3Gf281U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19869},"main":"lib/index.js","types":"lib/index.d.ts","gitHead":"96eea7c847132738573518217782084f5e89f8fd","release":{"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/npm","@semantic-release/git","@semantic-release/github"],"branches":["main"]},"scripts":{"build":"tsc","clean":"rm -rf ./lib","prepare":"yarn build","semantic-release":"semantic-release"},"_npmUser":{"name":"3akram","email":"m.akram2122@gmail.com"},"repository":{"url":"git+https://github.com/3akram/strapi-provider-upload-google-cloud-storage.git","type":"git"},"_npmVersion":"9.9.3","description":"Google Cloud Storage provider for Strapi v5 upload","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@google-cloud/storage":"^6.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.0.0","@types/node":"^18.0.0","semantic-release":"^21.0.7","@semantic-release/git":"^10.0.1","@semantic-release/changelog":"^6.0.3"},"peerDependencies":{"@strapi/strapi":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/strapi-provider-upload-google-cloud-storage_1.2.0_1737057183020_0.4583915164616381","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@3akram/strapi-provider-upload-google-cloud-storage","version":"1.3.0","description":"Google Cloud Storage provider for Strapi v5 upload","main":"lib/index.js","types":"lib/index.d.ts","scripts":{"clean":"rm -rf ./lib","build":"tsc","prepare":"yarn build","semantic-release":"semantic-release"},"dependencies":{"@google-cloud/storage":"^6.10.0"},"devDependencies":{"@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@types/node":"^18.0.0","semantic-release":"^21.0.7","typescript":"^5.0.0"},"peerDependencies":{"@strapi/strapi":"^5.4.0"},"publishConfig":{"access":"public"},"release":{"branches":["main"],"plugins":["@semantic-release/commit-analyzer","@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/npm","@semantic-release/git","@semantic-release/github"]},"keywords":["strapi","upload","provider","google-cloud-storage","gcs","storage"],"author":{"name":"3akram"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/3akram/strapi-provider-upload-google-cloud-storage.git"},"bugs":{"url":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage/issues"},"homepage":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage#readme","_id":"@3akram/strapi-provider-upload-google-cloud-storage@1.3.0","gitHead":"5dc076282af4a5b2bf2a28207106dc220b9d8ec4","_nodeVersion":"22.14.0","_npmVersion":"9.9.3","dist":{"integrity":"sha512-YMlpL+t4M9XCaVUpoaFfPNQ3+4LZXCqJaImHrJAjYJWKgij9nzpNZ1+JIga40q1952c1IOcN4e/F12ZyIDkMbQ==","shasum":"d37243d4d43063b730792de52e3763ab23ff5b4f","tarball":"https://registry.npmjs.org/@3akram/strapi-provider-upload-google-cloud-storage/-/strapi-provider-upload-google-cloud-storage-1.3.0.tgz","fileCount":12,"unpackedSize":22063,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDzEpWhfvlkLIUXf/pnIEyf5mqx7fj6WSPm8xz46SSxTgIgRybXb1qBTgkNXd+ina2MJGqVBiRYpqzT3UQhNzhybLI="}]},"_npmUser":{"name":"3akram","email":"m.akram2122@gmail.com"},"directories":{},"maintainers":[{"name":"3akram","email":"m.akram2122@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/strapi-provider-upload-google-cloud-storage_1.3.0_1744275778073_0.33329103706769114"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-04T20:36:11.781Z","modified":"2025-04-10T09:02:58.429Z","1.0.1":"2024-12-04T20:36:12.076Z","1.1.0":"2024-12-04T20:52:34.345Z","1.2.0":"2025-01-16T19:53:03.228Z","1.3.0":"2025-04-10T09:02:58.259Z"},"bugs":{"url":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage/issues"},"author":{"name":"3akram"},"license":"MIT","homepage":"https://github.com/3akram/strapi-provider-upload-google-cloud-storage#readme","keywords":["strapi","upload","provider","google-cloud-storage","gcs","storage"],"repository":{"type":"git","url":"git+https://github.com/3akram/strapi-provider-upload-google-cloud-storage.git"},"description":"Google Cloud Storage provider for Strapi v5 upload","maintainers":[{"name":"3akram","email":"m.akram2122@gmail.com"}],"readme":"# Strapi Google Cloud Storage Provider\n\nA Google Cloud Storage provider for Strapi v5 upload.\n\n## Installation\n\n```bash\nyarn add @3akram/strapi-provider-upload-google-cloud-storage\n```\n\n## Configuration\n\n### Provider Configuration\n\n`./config/plugins.ts`\n```typescript\nexport default ({ env }) => ({\n  upload: {\n    config: {\n      provider: '@3akram/strapi-provider-upload-google-cloud-storage',\n      providerOptions: {\n        bucketName: env('GOOGLE_CLOUD_BUCKET'),\n        publicFiles: true,\n        uniform: true,\n        basePath: '',\n        baseUrl: 'https://custom-url.com' // Optional base url. Replaces https://storage.googleapis.com/{bucketName}\n      },\n    },\n  },\n});\n```\n\n### Required Environment Variables\n\n```env\nGOOGLE_CLOUD_BUCKET=your-bucket-name\nGOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json\n```\n\n### Google Cloud Setup\n\n1. Create a Google Cloud Storage bucket\n2. Enable uniform bucket-level access\n3. Make the bucket publicly accessible by adding the following IAM policy:\n   - Member: `allUsers`\n   - Role: `Storage Object Viewer`\n4. Create a service account with the following roles:\n   - `Storage Object Creator`\n   - `Storage Object Viewer`\n   - `Storage Object Admin` (if you want to enable file deletion)\n5. Download the service account key JSON file and set its path in `GOOGLE_APPLICATION_CREDENTIALS`\n\n## Features\n\n- Upload files to Google Cloud Storage\n- Delete files from Google Cloud Storage\n- Support for uniform bucket-level access\n- Detailed logging for debugging\n- TypeScript support\n\n## Development\n\n```bash\n# Install dependencies\nyarn install\n\n# Build the provider\nyarn build\n\n# Run tests (when implemented)\nyarn test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}