Remitly / verdaccio-s3-storage

📦 AWS S3 storage plugin for verdaccio
MIT License
48 stars 15 forks source link

Plugin not loading (or not working) #4

Closed jmcazaux closed 6 years ago

jmcazaux commented 6 years ago

Hi there, we are building a Verdaccio instance and this plugin would be a great help.

Unfortunately, it seems it is either not loaded or cannot work as no files are copied to our S3 storage.

Here is how we are starting verdaccio:

AWS_ACCESS_KEY_ID=A******A AWS_SECRET_ACCESS_KEY=l*****G NODE_DEBUG=request verdaccio

Here what we get:

warn --- config file - /home/ubuntu/.config/verdaccio/config.yaml info --- Plugin successfully loaded: htpasswd warn --- http address - http://localhost:4873/ - verdaccio/2.7.4 info <-- 127.0.0.1 requested 'PUT /test-package' info --> making request: 'GET https://registry.npmjs.org/phoenix-ts' http --> 200, req: 'GET https://registry.npmjs.org/test-package' (streaming) http --> 200, req: 'GET https://registry.npmjs.org/test-package', bytes: 0/10755

1) there is no message saying the plugin is loaded (maybe each pluggin is doing this) 2) the test-package remains in the local storage

Many thanks for your help,

juanpicado commented 6 years ago

Please share your config file.

jmcazaux commented 6 years ago

Hi Juan, her it is:

config.yaml.txt

juanpicado commented 6 years ago
#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#

# path to a directory with all packages
storage: ./storage

store:
  s3-storage:
    bucket: our-private-bucket
    keyPrefix: npm-packages # optional, has the effect of nesting all files in a subdirectory
    region: eu-west-1 # optional, will use aws s3's default behavior if not specified
    # endpoint: https://{service}.{region}.amazonaws.com # optional, will use aws s3's default behavior if not specified
    # s3ForcePathStyle: false # optional, will use path style URLs for S3 objects

auth:
  htpasswd:
    file: ./htpasswd
    # Maximum amount of users allowed to register, defaults to "+inf".
    # You can set this to -1 to disable registration.
    #max_users: 1000

# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmjs.org/

packages:
  '@*/*':
    # scoped packages
    access: $authenticated
    publish: $authenticated
    proxy: npmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $authenticated

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

# log settings
logs:
  - {type: stdout, format: pretty, level:  trace}
  #- {type: file, path: verdaccio.log, level: info}

web:
  enable: true
  title: Our npm registry
  logo: logo.png
juanpicado commented 6 years ago

You need verdaccio > 3x. as minimum for the new Storage API. verdaccio/2.7.4 do not support storage plugins. https://www.verdaccio.org/docs/en/plugins.html#storage-plugins

jmcazaux commented 6 years ago

Gosh, I did miss the small print!

Many thanks for your help and sorry for this stupid question.