SFTP फ़ाइल अनुमति त्रुटि और खाली दूरस्थ निर्देशिका अपलोड करना


1

द्वारा sftp से कनेक्ट होने पर sftp user@serveripaddress, मैंने फ़ाइल सूची को चेक किया ls, लेकिन यह दूरस्थ निर्देशिका में कुछ भी नहीं दिखाता है, यह भी कोशिश की गई cdलेकिन कोई अन्य पथ जो मैं स्थानांतरित नहीं कर सकता।

मैंने कोशिश की lls, यह मेरी परियोजना के लिए निर्देशिका दिखाता है।

दूरस्थ निर्देशिका को जोड़ने की कोशिश की गई, mkdir test लेकिन मुझे त्रुटि मिलती है:

Couldn't create directory: Permission denied

मेरे पास स्थानीय निर्देशिका में फ़ाइल मिली है /backups/mall/20180524_mallproducts.csv

तो अब मैं कमांड द्वारा दूरस्थ निर्देशिका में अपलोड फ़ाइल का परीक्षण करने की कोशिश कर रहा हूं, put backups/client/mall/20180522150444_mallproduct.csv /

यह मुझे परिणाम:

Uploading backups/client/mall/20180522150444_mallproduct.csv to /20180522150444_mallproduct.csv

remote open("/20180522150444_mallproduct.csv"): Permission denied

इसलिए मैं chmod का उपयोग करता हूं, लेकिन यह मुझे त्रुटि देता है, क्योंकि दूरस्थ निर्देशिका खाली है (कोई फ़ाइल या फ़ोल्डर नहीं):

Couldn't setstat on "/": Permission denied

संभवतः क्या गलत हो सकता है? मैं sftp में अनुमति कैसे बदल सकता हूं?

में docker-compose.yml, यह sftp के लिए मेरी सेटिंग है,

sftp:
    image: atmoz/sftp
    restart: always
    volumes:
        - ./data/sftp:/home/foo/upload
    ports:
        - "2222:22"
    command: sftp:pass:48

homeSFTP एक्सेस करते समय मुझे फ़ोल्डर की उम्मीद थी , लेकिन निर्देशिका खाली है।

सबसे पहले मैं पहुँच रहा था sudo docker-compose exec sftp bash, यह इसके लिए /home/foo/uploadनिर्देशिका है।

लेकिन फिर मैं इसके द्वारा पहुँचता हूँ sftp user@serveripaddress, जहाँ मुझे पता चला कि मेरा कोड यहाँ अपलोड करने की कोशिश कर रहा है।

यह sftp के माध्यम से अपलोड करने के लिए कोड है:

<?php

namespace Mall\Infra\Transfer;

use phpseclib\Net\SFTP;

class SftpPutTransfer
{

    /**
     * @var File $name
     */
    public function put(string $remote, string $local)
    {
        $sftp = new SFTP('user', 22);
        if (!$sftp->login('user', 'pass')) {
            var_dump('failed');
        } else {
            var_dump('success');
            var_dump($sftp->rawlist());
            $sftp->put($remote, $local, SFTP::SOURCE_LOCAL_FILE);
        }
    }
}

एसएफटीपी कनेक्ट करने और परीक्षण करने के लिए मैं उलझन में हूं।

जवाबों:


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.